I love books, have since I was very small. They have been a source of comfort and exploration for me all my life. This app is an expression of my joy for reading. It allows users to search for books via google's free books api, and then save all the books they've ever read to their user library. Users can make comments about the books in their library and see coments from other users who have checked out the same book. Also, in the user profile users can set reading goals which are dynamically updated as they update the progress of each book by setting the status of the book to 'unread', 'in-progress' or 'finished'. Users can also filter their personal library by category, rating, or number of pages, as well as search for books by typing the title in the user library serach bar. Once logged in, simply search for books and click the ones you'd like to add. Then edit details of each book by clicking on the book. Use the navbar 'actions' dropdown to set reading goals and update the user bio.
This is the final, server-side project for NSS full-stack boot camp. The live app is here https://librogram-shanks.herokuapp.com/
- Full crud functionality with server
- Filtering books by title, author, book length or category via django ORM
- A custom property for calculating and updating progress toward reading goals
https://drawsql.app/nss-7/diagrams/librogram#
Client: ReactJS, HTML, CSS, React-Bootstrap
Server: Python, Django, SQLite3
Clone the project
git clone https://github.com/shanks-t/librogram-server
Go to the project directory
cd Librogram-server
Install Pipenv
curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python
Install dependencies
pipenv install django autopep8 pylint djangorestframework django-cors-headers pylint-django
Create and initialize a new virtual environment
pipenv shell
Start server
pipenv runserver
Make sure to seed database with statuses for user-book details
python manage.py loaddata statuses
Clone Frontend Repo Listed above
git clone https://github.com/shanks-t/librogram-server
Run the React app
npm start