Giter Site home page Giter Site logo

librogram-server's Introduction

Overview

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.

Table of contents

Librogram

This is the final, server-side project for NSS full-stack boot camp. The live app is here https://librogram-shanks.herokuapp.com/

Features

  • 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

Librogam ERD

https://drawsql.app/nss-7/diagrams/librogram#

Tech Stack

Client: ReactJS, HTML, CSS, React-Bootstrap

Server: Python, Django, SQLite3

Run Locally

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

librogram-server's People

Contributors

shanks-t avatar

Stargazers

Roman avatar

Watchers

 avatar

librogram-server's Issues

User should be able to rate books

In the user profile page there will be a user library with a list of all the books the user has checked out. If the user clicks the book the user will be pushed to the user-book details for that book. There will be a slide for the user to rate the book on a scale.

Create UserLibrary

In the book search component, user can enter a book title and the search results will be rendered as a list of thumbnails, below which there will be a button to add to the user library, which will make a post to the user-book table. and the user library will get all books from user books that make that user's token and render those books to that users profile page's library

Create book profile component

Once the user searches for a book and clicks on the book thumbnail, he should be taken to the books profile page, with all the details about the book.

Add reading goal feature to user profile

given the user is a on his profile he should be able to click a button to create a reading goal for himself e.g. 30 books read for 2021, as the books statuses in his library are set to 'read' the book count or page count should increment and indicate progress toward reading goal

Book profile page current readers

Given the book has users that have checked it out to their library, the book profile should show a list of which users are reading or have read that book

create models

create models in order of importance:
book
user_book
reader
rating
comment
stretch models:
recommendation
post
exegesis
like

seed data with fixtures

Given the user auth works and models are migrated and working, begin seeding data with fixtures

Store google books in user library

Given book data is fetching create a put method in react to store google book data to data base in the books and userbooks tables.
there will be a button under each book in the search list to 'add to library'

Start React App

Given the api features in swagger are working, begin react app and build register/login components

user comments on book profile

When the user navigates to the books profile page the user should see a button to make a comment. After clicking the button a comment form will appear. The user will then click save comment, to add comment to book profile.

tags for book added when book is saved

when the user adds a book to his library the values in categories array of the book data will be added to the tags table if that tag does not already exist

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.