To-do Task List
Simple to-do task list with user authentication
About this project

The To-do Task List application is a bit unique from other To-do apps. This one comes with user authentication!

My desire was to create an application in React on the client-side and with Node.js / Express on the server-side. My love for Python kept me at bay from JavaScript and its frameworks for a short time but I'm back with a vengence!

Moreover, I wanted to create a full-stack application using mostly JavaScript based technologies. I initially wanted to use AWS Lambdas called from API Gateway but maybe when I get more time.

Instead, I created a REST API to serve the client side and hooking up MongoDB / Mongoose to store and retrieve the data.

Architecture

There are three main parts to this client, server, database application.

The first part is the client-side JavaScript framework React which provides the User Interface.

The second part is the server-side JavaScript framework Node.js / Express which enabled end points to make calls to and from the REST API. These "calls" were essentially the CRUD types of verbs: "GET", "PUT", "POST", "DELETE" so that users can effectively create an account, create tasks, read tasks, modify tasks, and delete tasks.

Finally, MongoDB / Mongoose allowed me to design and store user's credentials and their tasks.

A JWT (JSON Web Token) is issued once logged in and is deleted upon logging out. This is used during the session the user is logged in and is checked during all interactions with the application.

The REST API is hosted on AWS EC2 via Elastic Beanstalk and the React application is simply hosted on AWS S3.

Technologies
  • Node.js
  • Express
  • React
  • MongoDB
  • Mongoose
  • REST API
  • AWS S3
  • JWT