W23 MAD6123 Course Workbook

Project DUE March 30
Final Exam: March 30

Day 01: Building the MONGO Database

Review the Course Outline
Review the Accountabilities Schedule
2 Lab Tests
Final Exam
Study NO SQL Databases. Start working with MONGO DB

Day 02: Building the College Enrollment System with MONGO DB

Attendance Quiz
Review the concepts of MONGO DB

14-week course outline for MAD6123

Developing the Backend for a React App:
Week 1: Introduction to Backend Development
Understand the role of the backend in a mobile application
Overview of server-side JavaScript frameworks
Introduction to MONGO DB in NODE.js
Week 2: HTTP Requests and Responses
Understand the basics of HTTP Protocol
Apply HTTP Verbs, Status Codes, Headers, and Request and Response formats
Implement RESTful services
Week 3: MongoDB Basics
Understand the basics of NoSQL databases
Install MongoDB
Work with MongoDB in Node.js
Week 4: MongoDB Queries
Query MongoDB data using CRUD operations
Work with MongoDB indexes and aggregation pipelines
Understand the importance of schema design in MongoDB
Week 5: Asynchronous Programming in Node.js
Understand the basics of asynchronous programming
Utilize callbacks, promises, and async/await in Node.js
Work with event emitters in Node.js
Week 6: Express.js Middleware
Understand the importance of middleware in Express.js
Implement custom middleware in Express.js
Work with third-party middleware in Express.js
Week 7: Advanced Routing in Express.js
Work with route parameters and query strings
Implement route nesting and modular routing
Use route middleware to handle authentication and authorization
Week 8: Error Handling in Express.js
Understand common errors in Express.js
Implement error handling middleware in Express.js
Use third-party error handling middleware in Express.js
Week 9: Data Validation and Sanitization
Understand the importance of data validation and sanitization
Implement data validation and sanitization using third-party middleware
Work with input validation libraries in Node.js
Week 10: User Authentication
Understand the basics of user authentication
Implement user authentication using Passport.js
Work with session management in Node.js
Week 11: User Authorization
Understand the basics of user authorization
Implement user authorization using Access Control Lists (ACLs)
Work with role-based access control in Node.js
Week 12: Deploying Node.js Applications
Understand the basics of deploying Node.js applications
Deploy a Node.js application using cloud platforms like AWS and Heroku
Work with containerization using Docker
Week 13: Testing and Debugging
Understand the importance of testing and debugging
Work with testing frameworks like Mocha and Chai
Use debugging tools in Node.js
Week 14: Project Implementation
Implement a full-stack React application with a custom backend
Deploy the application to a cloud platform
Test and debug the application

Project Details:

Course Project: Building a Full-Stack Web Application with MongoDB and Node.js. Express JS will front end web server. You will use Routing to connect client web page forms to MONGO DB Queries (This will be Lab Test 1 on Wednesday).
Students can work in teams of up to 4 members. Teams can choose their own business domain to model. We will cover many interesting examples in class. These may give you some ideas.
Objective: This project will teach students how to build a full-stack web application using MongoDB and Node.js. Students will learn how to create an application that can store and retrieve data from a MongoDB database, as well as how to use Node.js to create a server for the application, and to implement the businsess rules of the Application.

Project Overview:

1. Setting up the Environment: Students will learn how to install and configure MongoDB and Node.js. They will also learn how to use npm to install additional packages and libraries.
2. Creating the Database: Students will learn how to create a MongoDB database. Build the Data Model for thge Business Domain for your Project.
Learn how to use Mongoose to create a model that represents the data they want to store.
3. Building the Backend: Students will learn how to use Express to create a web server for the application and how to use the Mongoose model to create routes for retrieving and updating data. (Do CRUD in a JSON schema database).
4. Building the Frontend: Students will learn how to use HTML, forms, CSS, and JavaScript to create a user interface for the application to interact with the database.
5. Testing and Debugging: Students will learn how to use tools such as Postman to test the application, how to debug errors, and how to optimize performance.
6. The data model will be deployed to ATLAS (MONGO Cloud service) and your code will reach the Mongo Database instance for development and testing.

At the end of the project, students will have created a full-stack web application that can store and retrieve data from a MongoDB database.


1. A working web application
2. Code documentation and comments
3. A report summarizing the project
4. A presentation demonstrating the application

Grading Criteria:
1. Quality of code (30%)
2. Quality of the user interface (30%)
3. Quality of the report and presentation (20%)
4. Completion of the project (20%)

1. MongoDB documentation
2. Node.js documentation
3. Express documentation
4. Postman documentation
5. Any additional resources provided by the instructor

Timeframe: The project should take approximately 10 days weeks to complete.

1. Basic knowledge of HTML, CSS, and JavaScript
2. Basic knowledge of MongoDB
3. Basic knowledge of Node.js
4. Basic knowledge of npm

Outcome: At the end of this course, students will have gained a basic understanding of full-stack web development with MongoDB and Node.js, as well as the skills to develop and deploy their own web applications.
Note: This project is meant to be a starting point for students. Depending on the students’ level of experience, the instructor may choose to add additional features or modify the project to suit their needs.

By the end of this course, students should be able to create an application that stores and retrieves data from a MongoDB database, as well as create a server for the application using Node.js.

Good luck!

First Steps (do this now):
I will give you 15 minutes to organize with your teams: (this should be done by 3:25):
I want each team (one per team) send me this information in a text file. Name your text file as TeamName.txt
Include the following information:
Team members’ names and Student ID.
(Later on, we will setup GITLAB accounts for you to put your code into).
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
) instead.