With SchoolNotes, you can:
- Create notes
- Read notes
- Edit notes
- Delete notes
- Categorize notes
- Search notes
- Add new categories
- Edit category settings
Additional highlights:
- Mobile-friendly design
- Scalability with a MongoDB database
- Super-fast note searching
- Faster loading times
Watch this quick video tutorial to see how to use SchoolNotes: Watch the video
The project folder consists of two main directories:
client
: The front-end application built using Angular.server
: The back-end REST API built with Express.js, Node.js, and MongoDB. The server uses the MongoDB native driver for efficient database operations.
The server
acts as the REST API for the client
. For the application to function properly, both the client
and server
need to run simultaneously. While a concurrent package is used for local development convenience, it is important to host each part separately in a production environment for better performance and scalability. Check out the How to Host in Production section for detailed guidance.
Follow these steps to set up and run the application on your computer:
-
Install the following software:
-
Create a free MongoDB Cluster by following this tutorial:
How to Create a MongoDB Cluster
-
Navigate to the
../school-note-angular/server
folder. -
Rename the
.example.env
file to.env
. -
Update the
MDB_URL
field in the.env
file with your MongoDB URI. Example:MDB_URL=mongodb+srv://username:[email protected]/?retryWrites=true&w=majority&appName=yourAppName
- Open your terminal and execute the following commands (this process may take 5-15 minutes):
git clone https://github.com/DevHanza/school-notes-angular.git cd school-notes-angular npm run start
- Once the setup is complete, a link will appear in the terminal. Open this link in your browser to use the application.
- To stop the application, press
CTRL + C
in the terminal. - Done! ✅
To host SchoolNotes in a production environment, follow these steps:
-
Host the Client:
- Build the Angular application using the command:
cd client ng build
- Serve the built files using a web server like Nginx or Apache.
- Build the Angular application using the command:
-
Host the Server:
- Use a Node.js process manager like PM2 to manage the server:
cd server pm2 start server.js
- Ensure the server is accessible via a public IP or domain name.
- Use a Node.js process manager like PM2 to manage the server:
-
Database Configuration:
- Use a managed MongoDB service like MongoDB Atlas for scalable and secure database hosting.
-
Environment Variables:
- Securely configure the server's environment variables (e.g.,
MDB_URL
).
- Securely configure the server's environment variables (e.g.,
If you encounter any issues, feel free to contact me on LinkedIn.
SchoolNotes is built using the MEAN stack:
This project was inspired by CS50x.