Check demo at ✨ Heroku and source code at 🏠 GitHub project homepage
This app was created as a part of the CodersCamp project (2019, Warsaw group) - fourth project - backend JavaScript, introduction to Node.js.
We created an app (with books database) in which you are able to add / edit / delete books as editor (authorization) and add comment and rating after registration and login (authentication).
To run project on your local machine for development and testing purposes you need to install the following software:
- Clone repository
git clone git@github.com:dobrzyckahanna/BookStore.git
- Install required project dependencies
cd BookStore
npm i
- Create your database on MongoDB Atlas and add .env file to your repository (main folder)
.env:
DB_USER=your Atlas database user name (not user name to Mongo account)
DB_PASSWORD=your Atlas database password (not password to Mongo account)
DB_DATABASE_ADDRESS=your Atlas database address
DB_DATABASE_NAME=your Atlas database name
NODE_ENV=development
DEBUG=app:startup,app:db
DEBUG_COLORS=true
DEBUG_FD=1
JWT_PRIVATEKEY=your secret jwt key
SESSION_SECRET=your secret session key
- Run developer server
npm start
- To see and test app open on localhost:3000
- database (relational or non-relational), its maintenance & input validation
- client/server communication, HTTP request handling
- template engine & CSS framework
- environment variables
- authorization & authentication
- JavaScript (including ES6+)
- MongoDB, mongoose, joi
- Express.js, jQuery - AJAX
- Pug, Bootstrap
- dotenv, config
- bcryptjs, jsonwebtoken
- cookies handling: cookie-parser
- errors handling: connect-flash, express-messages, express-session
- MongoDB Atlas cloud database handling
- debug with use morgan & debugger package
- CRUD for books
- user registration and login (authentication)
- editor with additional permissions (authorization)
- form handling (book: add, edit, add rate & review, user: registration & login)
- delete book handling
- top 10 books (key: descending ratings)
- search engine (key: author or book title)
- heroku deployment
- adamsobiesak - check at Github
- apiwonska - check at Github
- ceglarzagata - check at Github
- freefrogs - check at Github
- ireshka - check at Github
- Kombajn27 - check at Github
- natkalia - check at Github
- errors handling related to id not found (status: 404)