Skip to content

nawaljahmed/quicklist_project

Repository files navigation

Quicklist

Link

Technologies

JS Badge CSS3 Badge Pug Postgres Sequelize NodeJS Express.js NPM Figma Adobe Photoshop Git Visual Studio Code Heroku

About

Quicklist is a Remember The Milk inspired full-stack web application with dynamic features catered to programmers. Quicklist lets users create groups, add members, set tasks, subtasks, and assign due dates for members. Try out the app as a Demo user by clicking on the link above!

Features

  • Account Signup/Login/Logout
  • Personal Dashboard Created Upon Signup
  • Demo user
  • Create/Delete groups
  • Add/Remove group members
  • Add New Personal/group tasks
  • Display tasks By Ascending Due Date
  • Assign tasks To group members By Having Them Become The task Owner
  • All tasks Assigned To user Appear On Dashboard
  • task Owners Can Create/Delete Subtasks
  • Edit tasks If task Owner
  • Mark task As Complete If task Owner
  • Search Through tasks In group
  • Scroll Through Long List Of tasks

Screenshots

Demo user

demo

Sign Up

sign-up

Login

login

Create group

create new group

Add/Remove group members

add⁄removeGroupMembers

Add tasks

addNewTask

Search tasks

search

Edit task Details

editTaskDetails

Create Subtasks

createSubTasks

Mark task Completed

markTaskAsCompleted

How To Run Locally

To run locally, you must have NodeJS and Postgres installed on your machine. Once they are installed, Download/Git Clone the repo and create an .env and database following the .env.example located in the root of the repo. Then look at the repo's package.json located in the root to see what packages the project is dependant on. Use npm install to install those dependencies. After that, use Sequelize to run all the migrations (npx dotenv sequelize-cli db:migrate) and then run all pending seeds (npx dotenv sequelize-cli db:seed:all). Check to see if the database was properly seeded using psql. If seeded correctly, run the server using npm start.

Dependencies

  • BcryptJS - Bcrypt in JS (hash passwords).
  • Cookie-Parser - Parse HTTPS request cookies.
  • Csurf - Node.js CSRF protection middleware.
  • Express - Node.js web framework.
  • Express Session - Session middleware for Express.
  • Express Validator - Validator module middleware for Express.
  • HTTP Errors - Create HTTP Error Objects.
  • Morgan - HTTP request logger middleware.
  • Per ENV - Clean up package.json.
  • Pug - HTML templating engine.
  • Sequelize - ORM.
  • Dotenv - Load environment variables.
  • Nodemon - Development monitoring script.

Future Features

  • Make overdue task name in red.
  • Prevent from making task due in past.
  • Indicate task have subtask on the left panel.
  • Right pane subtasks are checkboxes.
  • Animation.
  • Improved UI/UX.
  • Extended group functionality.
  • NPM tests hooked to complete subtasks.

Technical Implementation

The database schema required more forethought than any other technical aspect of this project. Thinking carefully about this led to a schema that was aligned with our front-end queries. For example, deciding early that a group owner was not a member of that group kept the group owner out of the member table. This kept our queries shorter and easier to debug when we needed to, for example, restrict non group owners from write/update/delete privileges.

Project Created By

Nawal Ahmed

Nawal Ahmed - LinkedIn Nawal Ahmed - GitHub

Releases

No releases published

Packages

No packages published