This project is under development and continuous changes. Issues, feature requests, and contributions are welcomed.
To get the Node server running locally:
- Clone this repo
npm install
to install all required dependencies- Install MongoDB Community Edition (instructions) and run it by executing
mongod
npm start
to start the local server
- expressjs - The server for handling and routing HTTP requests
- babel-register - Transpilar for compiling modern javascript to old JS
- express-fileupload - For uploading files
- mongoose - For modeling and mapping MongoDB data to javascript
- express-paginate - For making pagination
- nodemailer - For sending emails
- dotenv - For keeping secret information safe
- express-validator - For validating input request
- express-sessions - For storing and managing sessions
- bcrypt - For hashing password
Handlebars - We are using handlebars.js as our templating engine because of its simplicity and richness. The Handlebars supports in all major browsers, like, Chrome Firefox, Safari and Internet Explorer. We are planning to switch to react in future.
tabler - We are using tabler (an open source HTML template) for our pages. It is a free and open-source HTML Dashboard UI Kit built on Bootstrap 4.
app.js
- The entry point to our application. This file defines our express server and connects it to MongoDB using mongoose. It also requires the routes and models we'll be using in the application.controllers/
- This folder contains our controllersroutes/
- This folder contains the route definitions for our API.models/
- This folder contains the schema definitions for our Mongoose models.helpers/
- This folder contains the validation helpersviews/
- This folder all views related to this applicationpublic/
- This folder contains all public resources