DevTaskFlow is a task management application built with Angular and Node.js, featuring user authentication, task filtering, sorting, and management capabilities. The app includes login, registration, password recovery, and authentication guards for secured access.
- Add, edit, delete, and complete tasks
 - Task priority system (Low, Medium, High)
 - Task filtering by completion status, priority, and overdue deadlines
 - Task sorting by date and priority
 - Task searching
 - Pinned tasks feature
 - Pagination for tasks
 
- User registration and login using MongoDB
 - Password hashing with bcrypt
 - JWT-based authentication with token storage
 - Forgot password feature (sends a new password via email)
 - Route guard to protect task management routes
 - Logout functionality
 
- Angular Material design
 - Responsive UI with dynamic theme switching
 - Dark/White mode toggle
 - Form validation with proper error handling
 - Preloaders for login, registration, and password recovery
 - Confirmation dialogs for critical actions (e.g., deleting all tasks)
 - Navigation Menu for better usability
 
- Unit Testing: Jasmine & Karma for frontend unit tests
 - Continuous Integration: GitHub Actions runs automated unit tests
 - Deployment Checks: Vercel deploys only if tests pass
 - Test Reports: JUnit reports uploaded to GitHub Actions
 
- Frontend: Angular 16, Angular Material
 - Backend: Node.js, Express.js, MongoDB (Mongoose)
 - Authentication: JWT, bcrypt.js
 - Email Service: Nodemailer with AOL SMTP
 - Hosting: Vercel (Frontend), Render (Backend)
 - Testing & CI/CD: Jasmine, Karma, GitHub Actions
 
- Clone the repository:
git clone https://github.com/art2url/dev-task-flow-auth-server.git cd dev-task-flow-auth-server - Install dependencies:
npm install
 - Create a 
.envfile in the root directory and add:MONGO_URI=your-mongodb-connection-string JWT_SECRET=your-secret-key EMAIL_USER=your-email@example.com EMAIL_PASS=your-email-password PORT=3000
 - Start the server:
The server will run at
npm start
http://localhost:3000. 
- Clone the repository:
git clone https://github.com/art2url/dev-task-flow.git cd dev-task-flow - Install dependencies:
npm install
 - Start the application:
The app will run at
ng serve
http://localhost:4200. 
- Frontend: Hosted on Vercel at https://dev-task-flow.vercel.app
 - Backend: Hosted on Render at https://dev-task-flow-auth-server.onrender.com
 - GitHub Actions: Runs unit tests before deployment
 
| Method | Endpoint | Description | 
|---|---|---|
POST | 
/register | 
Register a new user | 
POST | 
/login | 
Login user & return JWT | 
POST | 
/forgot-password | 
Send a new password to user email | 
GET | 
/tasks | 
Fetch all tasks for the user | 
POST | 
/tasks | 
Create a new task | 
PUT | 
/tasks/:taskId | 
Update a task by ID | 
DELETE | 
/tasks/:taskId | 
Delete a task by ID | 
DELETE | 
/tasks | 
Delete all tasks for the user | 
| Path | Component | Description | 
|---|---|---|
/tasks | 
TaskListComponent | Main task manager (protected) | 
/login | 
LoginComponent | User login page | 
/register | 
RegisterComponent | User registration page | 
/forgot-password | 
ForgotPasswordComponent | Password reset page | 
Pull requests are welcome! Please ensure your changes align with the existing architecture and maintain code quality.
This project is licensed under the MIT License.