A shopping cart application with Handlebars as the UI, REST API in Node.js and MongoDB as the datastore.
Development / Run
-----------------
Start the app locally (when not using Docker):
```bash
npm start
```
Docker (recommended)
--------------------
This project includes a `docker-compose.yml` that runs the app and a MongoDB service. To start both services:
```bash
docker-compose up -d
```
Seeding
-------
On container start the DB will be seeded automatically from `seed/init-mongo.js` (skips seeding if products already exist).
Important Routes
----------------
- **Home**: `/` (GET)
- **User Signup**: `/user/signup` (GET form, POST to create account)
- **User Signin**: `/user/signin` (GET form, POST to authenticate)
- **User Profile**: `/user/profile` (GET — requires authentication)
Static assets are served from `/stylesheets/*` (e.g. `/stylesheets/style.css`).
Notes
-----
- The app mounts the user routes under `/user`, so redirects and links must reference that prefix (for example the signup form posts to `/user/signup`).
- CSRF protection is enabled and requires forms to include the hidden `_csrf` field (the views already provide this).
A shopping cart application with Handlebar as UI, restAPI in nodeJS and mongoDB as datastore.
To launch, open terminal and fire
npm start
Npte: The rest endpoints are developed around mongoDB are backing store.