Skip to content

keith-liew/todolist-v1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Express ToDoList

Express web todolist app with EJS. Live demo is available on Cyclic or Render, both are free-tier plan.

Table of Contents

General Information

  • A simple express web server that implement EJS as page template
  • The webpage allows user to note down or cross-out and remove the task as a to-do-list item
  • It allows user to create customize list for specific task (by typing a self-define route)
  • A set of 3 default tasks will be generated whenever the task database is empty.
  • The web app is connected to mongoDB Atlas cloud service
  • For the sake of practicing secure deployment, the URI of Atlas of the owner will not be uploaded to the remote repository.
  • Purpose of building this project is to learn and practice my coding skill

Technologies Used

  • Express: ^4.16.3
  • Node: ^14.17.6
  • ejs: ^3.1.8
  • lodash: ^4.17.21
  • mongoose: ^6.6.1
  • dotenv: ^16.0.2

Features

  • Mark down a task
  • Cross-out a existing task

Screenshots

  • Homepage homepage

  • Homepage (Add task) homepage(after)

  • MongoDB Atlas (Task Collection) mongodbAtlas

  • Work List Page workList

  • MongoDB Atlas (List Collection Work Document) mongodbAtlas(workList)

  • Work List Page (Add task) workList(After)

  • MongoDB Atlas (List Collection Work Document)(Add task embeded reference) mongodbAtlas(workList)(after)

  • Create new list of task newSecretList

  • MongoDB Atlas mongodbAtlas(newList)

  • Remove task from the list newSecretList(AfterChecked)

Setup

  • Project environment:
  • Cloud Database environment (Optional):
    • Create a mongoDB Atlas account

Usage

  • On project terminal
    • install dependencies npm install
    • start the app npm app.js
  • On Mongodb Shell
    • start the database server mongosh
  • Or MongoDB Atlas (Optional):
    • Connect to your database via mongoose with the URI of your database (remember to change the information of username,password,clustername and password accordingly)
    • You should be able to get a customized URI from your account
    • For more detailed information and documentation, please visit mongoDB doc website mongoDB/docs
mongoose.connect("mongodb+srv://<username>:<password>@<clustername>.mongodb.net/<databasename>?w=majority");

Project Status

Project is: complete

Lesson Learned

  • Experience the mongoDatabase development process
    • How to create, read, update, and delete documents of mongoDB
  • Implement mongoose to the project
    • Create schema of mongoDB collection
    • Create schema validation
    • Create reference from another model
    • Create model with schema
    • Export model and schema
    • Learn the most basic mongoose functions and methods in order to manipulate the data from database
  • Establish connection between cloud database service and web
  • Make good use of hidden input and express dynamic route parameters to futher improve posting request
  • Found alternative fullstack hosting websites other than heroku

Room for Improvement

  • Improvement for more user-friendly user interface and user experience

Acknowledgements

  • This project was inspired by Angela Yu.
  • This project was based on this course on Udemy.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published