Express web todolist app with EJS. Live demo is available on Cyclic or Render, both are free-tier plan.
- General Info
- Technologies Used
- Features
- Screenshots
- Setup
- Usage
- Project Status
- Lesson Learned
- Room for Improvement
- Acknowledgements
- 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
- Express: ^4.16.3
- Node: ^14.17.6
- ejs: ^3.1.8
- lodash: ^4.17.21
- mongoose: ^6.6.1
- dotenv: ^16.0.2
- Mark down a task
- Cross-out a existing task
- Project environment:
- Node.js installed.
- MongoDB Shell installed.
- Cloud Database environment (Optional):
- Create a mongoDB Atlas account
- On project terminal
- install dependencies
npm install
- start the app
npm app.js
- install dependencies
- On Mongodb Shell
- start the database server
mongosh
- start the database server
- 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 is: complete
- 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
- Improvement for more user-friendly user interface and user experience
- This project was inspired by Angela Yu.
- This project was based on this course on Udemy.