An open API service indexing awesome lists of open source software.

https://github.com/t0ks1k24/hackathon_team3

πŸ“š Book catalog web app with authentication, search and book details. Built with React + Django + PostgreSQL.
https://github.com/t0ks1k24/hackathon_team3

books catalog django docker hackthon jwt-auth postgresql python react rest-api

Last synced: about 2 months ago
JSON representation

πŸ“š Book catalog web app with authentication, search and book details. Built with React + Django + PostgreSQL.

Awesome Lists containing this project

README

          

# Hackathon_Team3

## πŸ”Ή Book Collection Website

This is a web application for convenient book search and browsing. The site allows users to:

* πŸ” Authenticate (login/register)
* πŸ“– View books
* πŸ” Search books by title

---

## πŸ”§ Problem the Website Solves

* πŸ“˜ Provides quick access to book information
* πŸ” Allows easy search by title
* πŸ” Provides simple authentication with JWT
* πŸ’» Offers an intuitive interface (planned improvements)

---

## βœ… Key Features

* πŸ” User authentication (Login) and registration (Register)
* 🏠 Home page with greeting
* πŸ”’ Automatic redirect to login page if not authenticated
* πŸ“š Book catalog with pagination
* πŸ“„ Detailed book information view

---

## πŸ› οΈ Technologies Used

### πŸ”Ή Frontend (React)

* βš›οΈ **React** β€” core library for building the UI
* πŸ” **React Router** β€” page routing
* 🧠 **Redux Toolkit** β€” centralized state management
* 🎨 **React Icons** β€” modern styled icons
* 🧰 **Lodash** β€” utility library for arrays, objects, strings

---

### πŸ”Ή Backend (Django)

* 🐍 **Python + Django 5.2** β€” backend framework
* 🌐 **Django REST Framework (DRF)** β€” REST API creation
* πŸ” **Simple JWT** β€” authentication with JSON Web Tokens
* πŸ”Ž **django-filter** β€” API request filtering
* 🌍 **django-cors-headers** β€” CORS support for frontend communication
* πŸ“„ **drf-yasg** β€” autogenerated API docs (Swagger/OpenAPI)
* βš™οΈ **python-dotenv** β€” load configs from `.env`
* 🌐 **requests** β€” HTTP requests
* 🧽 **BeautifulSoup4** β€” HTML/data parsing
* πŸ“Š **pandas + XlsxWriter** β€” analytics, Excel export

---

### πŸ”Ή DevOps

* 🐳 Docker
* πŸ™ docker-compose
* 🌲 git
* 🐱 GitHub
* βš™οΈ GitHub Actions
* 🌐 nginx

---

### πŸ—ƒοΈ Database

* 🐘 **PostgreSQL** β€” relational database for books, users, and more

---

## 2. Installation

You can use Docker to run the project β€” this makes setup much easier.

### Run with Docker

```bash
cd devops/docker/
docker-compose up -d
```

### Backend (Python / Django)

Ensure you have Python 3.10+ and pip installed.

```bash
cd backend
python -m venv env

# Windows
source env/Scripts/activate

# MacOS/Linux
source env/bin/activate

pip install -r requirements.txt
```

### Frontend (React)

Ensure Node.js and npm are installed.

```bash
cd frontend
npm install
```

---

## πŸš€ Running the Project

### Backend (Django)

```bash
cd backend
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
```

### Frontend (React)

```bash
cd frontend
npm start
```

* Frontend β†’ [http://localhost:3000](http://localhost:3000)
* Backend API β†’ [http://localhost:8000](http://localhost:8000)

---

### πŸ› οΈ API Documentation

* Swagger/OpenAPI available at:
[http://localhost:8000/swagger/](http://localhost:8000/swagger/)

⚠️ All protected endpoints require a JWT token in the header:

```
Authorization: Bearer
```

---

## 🧠 Conclusions / Next Steps

πŸ”š Our site is not yet a full-fledged library, but it’s no longer just a notebook hack. In 4 days we built working authentication, book search, a catalog, and UI β€” and that’s already a **victory** (small β€œv”, bold font).

πŸ’€ Countless sleepless nights, more coffee than code, and our team mantra:
**β€œI still know nothing, but I’m already coding!”**

πŸ‘¨β€πŸ’» Despite teammates being like:

* β€œteam knows nothing yet”
* β€œteam went to sleep”
* β€œteam forgot to push to git”

Everyone contributed β€” even those who joked more than coded!

---

### πŸ“… What We Plan to Add

* πŸ’Ύ Save books to favorites (likes, bookmarks)
* ⭐ Book ratings and reviews
* πŸ“₯ Admin panel for manual book adding
* πŸ“¦ Parser for new online sources
* πŸŒ— Dark/light theme (partially done)
* πŸ“± Mobile adaptation
* πŸ›‘οΈ More validations and security

---

πŸŽ‰ The project became more than just code β€” it was an adventure: bugs, fixes, chaos in Discord, and memes instead of documentation πŸ˜„

We learned more than expected, wrote more code than planned, and of course β€” slept less than we should have.

---