AssignFlow is a web-based application designed to help users manage their assignments and projects efficiently. It provides features for creating, editing, and tracking tasks and projects.
- User registration and authentication
- Create, edit, and delete tasks
- Create, edit, and delete projects
- Mark tasks and projects as complete
- Dashboard to view recommended tasks based on priority and deadlines
The site map for AssignFlow:
- username: String, required, unique
- email: String, required, unique
- password: String, required
- createdAt: Date, default: Date.now
- title: String, required
- description: String
- dueDate: Date, required
- completed: Boolean, default: false
- project: ObjectId, ref: 'Project', required
- user: ObjectId, ref: 'User', required
- createdAt: Date, default: Date.now
- priority: Number, default: 1, min: 1, max: 5
- name: String, required
- description: String
- user: ObjectId, ref: 'User', required
- tasks: [ObjectId], ref: 'Task'
- completed: Boolean, default: false
- createdAt: Date, default: Date.now
- User Registration: As a user, I want to register an account so that I can manage my tasks and projects.
- Task Management: As a user, I want to create and edit tasks so that I can keep track of my assignments.
- Project Management: As a user, I want to create and manage projects to organize my tasks.
- Task Completion: As a user, I want to mark tasks as complete to track my progress.
- Dashboard View: As a user, I want to see a dashboard with recommended tasks based on priority and deadlines.
- User Authentication: Implementing secure user authentication using bcrypt and sessions.
- Task Prioritization: Developing an algorithm to recommend tasks based on priority and deadlines.
- Responsive Design: Ensuring the application is responsive and user-friendly on all devices.
- Passport.js documentation - Used for implementing user authentication.
- JavaScript Form Validation Tutorial - For client-side validation.
- MongoDB Documentation - Reference for database setup and schema design.
- Mongoose Guide - For structuring models and relationships in MongoDB.
- Clone the repository.
- Install dependencies:
npm install - Set up environment variables in a
.envfile. - Run the application:
npm start
This project is licensed under the MIT License.


