A complete full-stack Todo application with user authentication, built using modern technologies in a monorepo structure.
π Latest Allure Report: View Online
This is a monorepo containing three packages:
todo-app/
βββ backend/ # Express API with Prisma ORM and PostgreSQL
βββ frontend/ # Vue 3 frontend application
βββ test/ # Enterprise QA Testing Framework
βββ package.json # Root package.json (monorepo config)
- β User Authentication (Register, Login, Logout)
- β Password Reset (Forgot/Reset Password)
- β Role-based Authorization (Admin/Client)
- β Todo CRUD operations
- β JWT Authentication with Refresh Tokens
- β Swagger API Documentation
- β Logging with Winston
- β PostgreSQL Database with Prisma ORM
- β Security: Helmet, Rate Limiting, CSRF, Input Validation
- β Comprehensive Unit & Integration Tests
- β Vue 3 with Composition API
- β User Authentication UI
- β Todo Management Dashboard
- β Responsive Design with Bootstrap 5
- β State Management with Pinia
- β XSS Protection with DOMPurify
- β Form Validation
- β Accessibility (WCAG 2.1 AA)
- β Unit Tests with Vitest
- β 70+ automated tests
- β UI Testing (Playwright + Page Object Model)
- β API Testing (JSON Schema Validation)
- β Database Testing (Direct SQLite)
- β Contract Testing (Pact.js)
- β Performance Testing (Artillery)
- β Allure Reports (Screenshots, Videos, History, Trends)
- Node.js v18.0.0 or higher
- npm v9.0.0 or higher
1. Install all dependencies:
npm install
cd backend && npm install
cd ../frontend && npm install
cd ../test && npm install2. Setup Backend:
cd backend
npm run prisma:generate
npm run prisma:migrate3. Configure Environment:
Create backend/.env:
DATABASE_URL="your-db-url"
JWT_SECRET="your-secret-key-here"
JWT_REFRESH_SECRET="your-refresh-secret-here"
PORT=30004. Start Development Servers:
# Terminal 1 - Backend
cd backend
npm run dev
# Terminal 2 - Frontend
cd frontend
npm run dev5. Access Application:
- Frontend: https://todo-app-frontend-seven-rho.vercel.app
- Backend API: https://todo-app-xhn2.onrender.com/api/
- Swagger Docs: https://todo-app-xhn2.onrender.com/api/docs/
# Backend Tests
cd backend
npm test # All tests with coverage
npm run test:unit # Unit tests only
npm run test:integration # Integration tests only
# Frontend Tests
cd frontend
npm test # All tests
npm run test:coverage # With coverage
# QA Framework (E2E, API, DB, Contract, Performance)
cd test
npm run test:smoke # Quick smoke tests
npm test # All UI tests
npm run test:api # API tests
npm run test:db # Database tests
npm run test:performance # Performance tests
# See test/README.md for Allure report generation- Backend README - Complete backend API documentation, setup guide, and testing instructions
- Frontend README - Frontend development guide, components, and best practices
- Test README - Enterprise QA Testing Framework guide with Allure reports
- Performance Testing README - Performance testing scenarios and metrics
- Backend API Docs: https://todo-app-xhn2.onrender.com/api/docs/
- Latest Allure Report: View Online
- Runtime: Node.js 18+
- Framework: Express.js
- Database: SQLite + Prisma ORM
- Authentication: JWT + bcrypt
- Validation: express-validator
- Security: Helmet, Rate Limiting, CSRF
- API Docs: Swagger
- Logging: Winston
- Testing: Jest + Supertest
- Framework: Vue 3 (Composition API)
- Build Tool: Vite
- State Management: Pinia
- Routing: Vue Router
- UI Framework: Bootstrap 5
- HTTP Client: Axios
- Security: DOMPurify (XSS protection)
- Testing: Vitest + @vue/test-utils
- E2E: Playwright
- API Testing: Axios + Ajv (JSON Schema)
- DB Testing: better-sqlite3
- Contract Testing: Pact.js
- Performance: Artillery
- Reporting: Allure (with video, screenshots, trends)
todo-app/
β
βββ backend/ # Express Backend API
β βββ src/
β β βββ api/
β β β βββ controllers/ # Request handlers
β β β βββ services/ # Business logic
β β β βββ middleware/ # Auth, validation, error handling
β β β βββ routes/ # API routes
β β β βββ validations/ # Input validation
β β βββ config/ # Configuration files
β β βββ __tests__/ # Unit & integration tests
β βββ prisma/
β β βββ schema.prisma # Database schema
β βββ package.json
β
βββ frontend/ # Vue 3 Frontend
β βββ src/
β β βββ components/ # Vue components
β β βββ views/ # Page views
β β βββ composables/ # Composition API hooks
β β βββ stores/ # Pinia stores
β β βββ router/ # Vue Router config
β β βββ services/ # API client
β β βββ __tests__/ # Unit tests
β βββ package.json
β
βββ test/ # QA Testing Framework
β βββ e2e/ # UI tests (Playwright)
β βββ page-objects/ # Page Object Model
β βββ api/ # API tests
β βββ database/ # DB tests
β βββ contract/ # Contract tests (Pact)
β βββ performance/ # Performance tests (Artillery)
β βββ helpers/ # Test utilities
β βββ fixtures/ # Test data
β βββ config/ # Test configuration
β
βββ package.json # Root monorepo config
- β JWT with refresh tokens (httpOnly cookies)
- β Password hashing (bcrypt with 12 rounds)
- β Rate limiting (auth endpoints)
- β CSRF protection
- β Input validation & sanitization
- β XSS protection
- β Security headers (Helmet)
- β SQL injection prevention (Prisma)
- β Monorepo architecture
- β Environment-based configuration
- β Comprehensive error handling
- β Logging (Winston)
- β API documentation (Swagger)
- β Code quality (ESLint, Prettier)
- β 95%+ test coverage
- β CI/CD ready
- β 70+ automated tests
- β 5 test layers (UI, API, DB, Contract, Performance)
- β Page Object Model (POM)
- β JSON Schema validation
- β Allure reports with video & screenshots
- β Test history & trends
- β Flaky test detection
| Component | Coverage | Tests |
|---|---|---|
| Backend | 95%+ | 50+ unit & integration tests |
| Frontend | 90%+ | 30+ unit tests |
| E2E | Full | 40+ UI tests |
| API | 100% | 20+ API tests |
| Database | 100% | 15+ DB tests |
| Performance | - | 4 scenarios (Load, Stress, Spike, Endurance) |
cd backend
npm run prisma:generate
npm run prisma:migrate
npm startcd frontend
npm run build
# Serve dist/ folder with nginx/apacheSee backend/ENV_SETUP.md for complete list.
- Fork the repository
- Create feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open Pull Request
ISC License - See LICENSE file for details.
This is a production-ready full-stack application with:
- β Complete authentication system
- β RESTful API with Swagger docs
- β Modern Vue 3 frontend
- β Enterprise-grade testing (70+ tests, 5 layers)
- β Security best practices
- β Comprehensive documentation
- β 95%+ test coverage
Ready to use! π
- Backend Issues: See backend/README.md
- Frontend Issues: See frontend/README.md
- Testing Issues: See test/README.md
Happy Coding! π