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.
- Host: GitHub
- URL: https://github.com/t0ks1k24/hackathon_team3
- Owner: T0ks1k24
- Created: 2025-05-27T11:39:57.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-24T15:17:14.000Z (9 months ago)
- Last Synced: 2025-08-24T20:09:23.718Z (9 months ago)
- Topics: books, catalog, django, docker, hackthon, jwt-auth, postgresql, python, react, rest-api
- Language: Python
- Homepage:
- Size: 1.95 MB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
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.
---