Confusion is a single-page AngularJS/Node.js web application for an indian-based restaurant called confusion that aims to show restaurant's aviable dishes and make users able to favorite and comment them. The application is built on the MEAN Stack of technologies and using RESTful web services architecture.
The application was built using Node.js runtime. It used MongoDB as the underlying database system. It uses Express framework and Mongoose ODM toolkit. And in the front-end side, it uses AngularJS to make it SPA and Bootstrap framework.
This is my project for the Coursera's Full Stack Web Development Specialization created by Hong Kong University of Science and Technology.
- Single page application (SPA).
- HTTPS secure communication.
- User registration system.
- Authentication using JSON Web Token (JWT).
- CRUD dishes operations for users with an admin privilege.
- CRUD leaders operations for users with an admin privilege.
- CRUD promotions operations for users with an admin privilege.
- Review (rate and comment) to restaurant's dishes.
- JSON API endpoints for all dishes, reviews, promotions, leaders, and favorites.
- Elegant and responsive UI.
You have to install the following to be able to run and test the application:
- Clone this repository to your desktop, go to its root directory and run:
npm install
- Go to the
public
folder and run:bower install
- Create a new folder with the name
data
anywhere in your machine and run:mongod --dbpath=data use conFusion
- Run the application and go to localhost:3443 to see the application running.
npm start
- If you want to populate the database with some dummy data go to the
db
folder.
- Node.js: Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.
- AngularJS: AngularJS is a JavaScript-based open-source front-end web application framework.
- Express: Fast, unopinionated, minimalist web framework for Node.js.
- MongoDB: MongoDB is a free and open-source cross-platform document-oriented database program.
- Mongoose ODM: Mongoose provides a straight-forward, schema-based solution to model data.
- Passport: Passport is authentication middleware for Node.js. Extremely flexible and modular, Passport can be unobtrusively dropped in to any Express-based web application.
- jsonwebtoken: An implementation of JSON Web Tokens.
- Bootstrap 3: Bootstrap is the most popular HTML, CSS, and JS framework for developing responsive, mobile first projects on the web.
This software is licensed under the Modified BSD License.