It is a full-stack website for a library. Here you can place a hold for a book, see book information, search for books. Although you can't read any book, it shows you how can nicely build a system like this.
A user can also register and login into the website to keep track of the books. Further details are given below.
Visit the site: Noxford Library Live
Watch the video: Noxford Library on Youtube
- BootStrap 5
- CSS 3
- EJS
- AJAX
- Node JS
- Express JS
- Express Session
- Express Layouts
- Bcrypt
- MongoDb Atlas
- Heroku
Login: Login system is supported by Express Session. That uses cookie to remember a login session.
Register: Register form is fully functional and supported by HTML Form and JavaScript. However, if anyone manages to pass any unacceptable input, it will be rejected by the server.
For security measures, I've used Bcrypt to hash and protect the passwords. Bcrypt is a password-hashing function designed by Niels Provos and David Mazières, based on the Blowfish cipher and presented at USENIX in 1999.
The dashboard keeps track of the books that a user has placed a hold on. Anyone can place a hold on any book by logging into the site.
The search page uses AJAX to show results dynamically. Users can search for a keyword and apply filters to the results. User input always gets sanitized before a search operation execute.
I hope by exploring this project, anyone can have a good idea about full-stack projects easily. Visit the site and dive into the projects files to know more. Happy coding. Thank you for visiting my project.