Book Nest is an app for book lovers, a charming community for those who love to read e-books. Readers can find a new favourite book. Book owners can share their e-books. Also, authors can share their stories with the Book Nest community.
The application was designed following the MVC (Model View Control) design pattern using a MySQL database with Sequelize ORM, an Express.js back end, and Handlebars templating to present data to the user.
Go to GitHub for the Book Nest app's code. See the deployed app on Heroku.
- Book Nest
This application uses the following technologies:
Dependencies
- Node.js
- Express.js
- handlebars
- Express-Handlebars
- Express-Session
- MySQL 2
- Sequelize
- Connect Session Store using Sequelize
- dotenv
- bcrypt
Dev dependencies
Deployment
- Access the deployed Book Nest app via Heroku
- See Demos below that depict the Book Nest's functionality
- Book Nest is a responsive app. See Screenshots to view mobile and desktop screen sizes.
To install and run Book Nest locally,
- Download or clone the code from the [Book Nest GitHub Repository](https://github.com/grace-anderson/book-nest
- Open in your preferred terminal (e.g. Visual Studio Code's integrated terminal)
- Navigate to the specified folders in order and run the listed command(s):
- In the 'db' folder:
mysql -u root -p; [at the prompt, enter your password to access your MySQL Shell] source schema.sql;
- In the root directory:
npm install npm run seed
- To start the app:
- After installation, in the root directory, run the following command:
npm run watch
- Contributions are welcome.
- The code is located in this GitHub repo
- To contribute, open a new issue describing your proposed enhancement or fix.
- Before contributing, browse through the Future enhancements and open issues to see if your issue already exists or if there is an issue/enhancement you might be able to solve.
- If you're a newbie dev, start contributing by looking for issues labelled "good first issue"
- It is good practice to set up your project repository as an "upstream" remote and synchronize with the project repository
- Don't update the main branch. Rather create your own branch using a brief descriptive name and make your changes there
- You can create pull requests, but only admins can review and merge.
- Be nice to your reviewer by adding adding a plain English explanation of your pull request and how your updates addresses the issue/s or enhancements
- Also see the GitHub Community Guidelines
These gifs demonstrate Book Nest's current functionality
- View Our Books (user is not logged in)
- Find A Book (user is not logged in)
- Sign up and My Profile
- Find A Book and add to My Reading List
- Remove a book from My Reading List
- Share a Book
- Login, navigate, Logout
Screenshots of desktop (>960px) size for homepage, 'View Our Books', 'Find A Book', and 'Login'
- User interface: margins on nav buttons to stop pushing out, more colour contrast
- Manage when user tries to add a book already in their reading list (e.g. no "add to reading list button)
- Manage when user tries to remove a book already in their reading list (e.g. no "remove from reading list" button)
- Retain text in search so user sees their typed search
- Link book record on reading list to its ebook
- User checkout to read or reserve an ebook
- Delete a book record
- Edit a book record
- Add images to a book record
- Enhanced context-sensitive navigation
- Notifications (e.g. when a new book in a favourite genre is shared)
- Login with social media account
© 2022 Sushan Yue, Helen Anderson, Marko-Petreski, Muhamad Sahid
This project is licensed under the MIT License.