Skip to content

MEAN Stack Application for taking notes for students. (MongoDB, Angular, Express.js, Node.js)

Notifications You must be signed in to change notification settings

DevHanza/school-notes-angular

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SchoolNotes

MEAN Stack Technologies

A Simple Note-Taking Application for Students

SchoolNotes Screenshot

Features

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

How to Use

Watch this quick video tutorial to see how to use SchoolNotes: Watch the video

Project Structure

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.

How to Run It Locally

Follow these steps to set up and run the application on your computer:

Prerequisites

  1. Install the following software:

  2. Create a free MongoDB Cluster by following this tutorial:
    How to Create a MongoDB Cluster

Setup

  1. Navigate to the ../school-note-angular/server folder.

  2. Rename the .example.env file to .env.

  3. 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

Run in on your computer

  1. 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
  2. Once the setup is complete, a link will appear in the terminal. Open this link in your browser to use the application.
  3. To stop the application, press CTRL + C in the terminal.
  4. Done! ✅

How to Host This on Production Environment

To host SchoolNotes in a production environment, follow these steps:

  1. 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.
  2. 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.
  3. Database Configuration:

    • Use a managed MongoDB service like MongoDB Atlas for scalable and secure database hosting.
  4. Environment Variables:

    • Securely configure the server's environment variables (e.g., MDB_URL).

Need Help?

If you encounter any issues, feel free to contact me on LinkedIn.


SchoolNotes is built using the MEAN stack:

Inspiration

This project was inspired by CS50x.

About

MEAN Stack Application for taking notes for students. (MongoDB, Angular, Express.js, Node.js)

Topics

Resources

Stars

Watchers

Forks