https://github.com/alexandrabaturina/book-catalog
Flask web application that provides a list of books within variety of authors. Implementing third-party authentication & authorization, it allows registered users to add, edit, and delete their own records.
https://github.com/alexandrabaturina/book-catalog
crud-operations flask json oauth2 sqlite3
Last synced: 2 months ago
JSON representation
Flask web application that provides a list of books within variety of authors. Implementing third-party authentication & authorization, it allows registered users to add, edit, and delete their own records.
- Host: GitHub
- URL: https://github.com/alexandrabaturina/book-catalog
- Owner: alexandrabaturina
- Created: 2020-03-26T23:06:48.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-01-06T15:50:45.000Z (over 4 years ago)
- Last Synced: 2025-02-14T20:39:34.764Z (4 months ago)
- Topics: crud-operations, flask, json, oauth2, sqlite3
- Language: Python
- Homepage:
- Size: 95.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Full Stack Web Development Nanodegree Project #2: Book Catalog
## Overview
The **Book Catalog** is the second project for [Full Stack Web Developer Nanodegree Program](https://www.udacity.com/course/full-stack-web-developer-nanodegree--nd0044) provided by Udacity. It requires to build a RESTful web application that provides a list of books within a variety of authros as well as user registration and authentication system.The project has the following goals:
* Develop a web app with [Flask](https://flask.palletsprojects.com/en/1.1.x/) framework
* Make a web server in Python
* Work with [SQLite](https://docs.python.org/3/library/sqlite3.html)
* Implement ***CRUD*** (create, read, update, and delete) functionality
* Implement third-party ***OAuth*** auhtentication
* Serialize data
* Create JSON APIs### Deployment
You can check the project deployment by visiting [http://54.191.192.22.xip.io](http://54.191.192.22.xip.io).You can check web and database server configuration in [Linux Server Configuration](https://github.com/alexandrabaturina/linux-server-configuration) repository. For deployment, [PostgreSQL](https://www.postgresql.org/) is used instead of SQLite.
## Features
The **Book Catalog** application has the following features:
* Providing a list of authors
* Providing a list of books of each author
* Implementing a third-party authentication & authorization service via *Google Accounts*
* Allowing registered users to add, edit, and delete their own records
## JSON APIs
The **Book Catalog** application provides access to the following JSON APIs:
* [GET] ```/authors//JSON``` – Info about all books of the author
* id: number
* title: string(50)
* description: string(5000)
* [GET] ```/authors///JSON``` – Info about the book
* id: number
* title: string(50)
* description: string(5000)
* [GET] ```/authors/JSON``` – List of authors
* id: number
* name: string(50)
## Getting Started
### Loading Mock Data to the Database
To create database, run the following command:
```sh
python database_setup.py
```
To populate database with mock data, run the following command:
```sh
python lotsofbooks.py
```
### Running Locally
To run **Book Catalog** from the terminal, use the following command:
```sh
python application.py
```
To access the application via your browser, visit http://localhost:8000.## Authors
+ Alexandra Baturina