Visit the live website: Books For Life
Welcome to Books For Life! Books for Life is the place for all booklovers. Here you can find all your favorite books. You can also add, edit, delete and store all your books in one place! If you really want to buy a book, you can do that also through our cooperation with affiliates. Gain knowledge, grow and develop as a person with Books for Life π‘
The aim of the project is to create a book website where users can add/edit delete books from a book gallery, search and find books that they want to read, save books that they already have read and also buy the books the users like through an affiliate link.
- Provide a platform for book lovers to find and add books they love
- Earn money on each book purchased via a Amazon affiliate link from the website
- Collect user information through site analytics to optimize the website for users
- β I want to be able to search books for specific books
- β I want to see the book title, the authors name, some information about the book and a visual cover image of the book
- β I want to be able to buy the books i like
- β I want to be able to add books
- β I want to be able to delete or edit books
- β I want to be able to sign up and login
- β I want to be able to sign out
- β I want the website to responsive on my laptop, iPad and mobile phone
Icons
- Icons are being applied from Font Awesome and Materialize.
Typography
- Google Fonts were used across the site:
- Roboto is the primary font used throughout the project
- Sans-serif was chosen as the fallback font
Color scheme
- Brandy: #dabe8f
- White color: #fff
- Black color: #000 and rgba(0, 0, 0, 0.85)
- Guardsman Red: #c60e00
- Valencia: #d64136
- Spring Leaves: #528c59
- Fruit Salad: #55995d
- The wireframes were created using Balsamiq.
- Here is the link to see the Wireframes
Users Collection
ID | Data Type |
---|---|
_id | Int |
username | String |
password | String |
Reviews Collection
ID | Data Type |
---|---|
_id | Int |
title | String |
author | String |
description | String |
cover_url | String |
amazon_url | String |
- Users can sign up to Books for Life, with a unique username and password
- Users can log in to the website, with their unique username and password
- Users can sign out from the website
- Users can create and add books to the book gallery
- Users can edit and update existing book reviews
- Users can delete existing books from the book gallery
- Users can search for specific books in the book gallery
- Users can buy books through a Amazon link
- Users can follow Books for Life through social media, via social media icons
- The ability to sort books in the gallery
- Choose books by genre
- Upvote books or/and save books as favorites
- Have a personal account, with personal information, details and favorite books
- Reset password and create a new password
- Input email and send newsletter to users email account
- Pagination when there are many books accumulated in the gallery
- HTML
- CSS
- JavaScript
- Python
- Testing information can be found in this separate file: TESTING.md
The project was created by using the IDE services of Gitpod, from Gitpod the project was committed to Git and pushed to Github from the master branch.
This process was taken to deploy the website, from Github repositories:
- You can log into Github Pages
- From the repositories shown, choose: Sebastian-Torres-Matrix/books-for-life.
- On the menu bar at the top, to the right you can click on Settings.
- From there you can scroll down to the section Github Pages.
- On the headline Source you can choose master branch, from the dropdown menu.
- When choosing master branch, the master branch is deployed and also up to date: with access to the link to: Books for Life
- During the project, it has always been the master branch that has been deployed to Github Pages.
If you want to run this project locally, you can clone this repository from Gitbuh Pages by following this steps:
- Use this link to get to the Github repository: https://github.com/Sebastian-Torres-Matrix/books-for-life .
- On the menu bar at the top, to the right, choose the green button named Clone or download.
- In the Clone with HTTPS, you can copy the web URL.
- Open Git bash, in your local IDE.
- Change the current working directory to the location where you want the cloned directory to be made.
- Type git clone, and use the web URL from Clone with HTTPS: https://github.com/Sebastian-Torres-Matrix/books-for-life.git
- Press Enter, and your local clone will be created.
For more information about how to Git Clone, you can find it here
- Create a requirements.txt file using the following command.
pip3 freeze > requirements.txt
- Create a Procfile with the following command.
echo web: python3 app.py > Procfile
- Push these created files to your repository.
- Create a new app for this project on the Heroku Dashboard.
- Select your deployment method by clicking on the deployment method button and select GitHub.
- On the dashboard, set the following config variables:
Key | Value |
---|---|
IP | 0.0.0.0 |
PORT | 5000 |
MONGO_URI | mongodb+srv://root:@myfirstcluster-x0xst.mongodb.net/?retryWrites=true&w=majority |
SECRET_KEY | "your_secret_key" |
- Click the deploy button on the Heroku dashboard.
- The site has been deployed to Heroku.
- These websites, for the excellent content, with explanations and tutorials:
- Favicon.io
- For the favicon used in the project.
- Optimizilla
- Image compressor to shrink JPEG and PNG images.
- Pexels
- For the embedded background image used in the project.
- Fellow Code Institute students on Slack. For the support and feedback.
- Tutor support and Student care from Code Institute. For the support, guidance and feedback.
- Simen Daehlin, for excellent mentorship, with great guidance and feedback. π
- The content of this website is for educational purpose only. β
- Table of Contents β¬οΈ