Skip to content

EnockMagara/AssignFlow

Repository files navigation

AssignFlow

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.

Features

  • 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

Wireframes

  • Wireframe 1
  • Wireframe 2

Site Map

The site map for AssignFlow:

  • Site Map

Database Schema

User Schema

  • username: String, required, unique
  • email: String, required, unique
  • password: String, required
  • createdAt: Date, default: Date.now

Task Schema

  • 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

Project Schema

  • name: String, required
  • description: String
  • user: ObjectId, ref: 'User', required
  • tasks: [ObjectId], ref: 'Task'
  • completed: Boolean, default: false
  • createdAt: Date, default: Date.now

User Stories

  1. User Registration: As a user, I want to register an account so that I can manage my tasks and projects.
  2. Task Management: As a user, I want to create and edit tasks so that I can keep track of my assignments.
  3. Project Management: As a user, I want to create and manage projects to organize my tasks.
  4. Task Completion: As a user, I want to mark tasks as complete to track my progress.
  5. Dashboard View: As a user, I want to see a dashboard with recommended tasks based on priority and deadlines.

Research Topics

  • 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.

Annotations / References Used

  1. Passport.js documentation - Used for implementing user authentication.
  2. JavaScript Form Validation Tutorial - For client-side validation.
  3. MongoDB Documentation - Reference for database setup and schema design.
  4. Mongoose Guide - For structuring models and relationships in MongoDB.

Installation

  1. Clone the repository.
  2. Install dependencies: npm install
  3. Set up environment variables in a .env file.
  4. Run the application: npm start

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors