chore: add READMEs for clarity

This commit is contained in:
2025-07-25 02:01:50 +00:00
parent 26dd45ae95
commit 6476333846
5 changed files with 245 additions and 124 deletions

86
backend/README.md Normal file
View File

@@ -0,0 +1,86 @@
# minxa.lol Backend
This is the **FastAPI-based** backend service for [minxa.lol](https://minxa.lol), a modern and lightweight URL shortener.
---
## 🧰 Tech Stack
* **FastAPI** Async web framework
* **SQLAlchemy (async)** Database ORM
* **PostgreSQL** Primary data store
* **Hashids** Encodes IDs into short strings
* **Alembic** Database migrations
* **Uvicorn** ASGI server
---
## ⚙️ Environment Setup
### 1. Create a virtual environment
```bash
python3 -m venv venv
source venv/bin/activate
```
### 2. Install dependencies
```bash
pip install -r requirements.txt
```
### 3. Create `.env` file
```bash
cp .env.example .env
```
Edit the `.env` file to include your local database connection:
```env
DATABASE_URL=postgresql+asyncpg://user:password@localhost:5432/minxadatabase
```
---
## 🚀 Running the Backend
### Development Server
```bash
uvicorn backend.main:app --reload --app-dir ..
```
### Production Server (via Docker Compose)
From the root of the project:
```bash
python generate_configs.py
docker compose -f docker-compose.generated.yml up --build -d
```
---
## 📁 Directory Overview
```
backend/
├── db/ # DB engine & session
├── models/ # SQLAlchemy models
├── routes/ # FastAPI routers
├── schemas/ # Pydantic request/response schemas
├── services/ # Business logic
├── utils/ # Hashid encoder and other helpers
├── main.py # FastAPI entrypoint
├── config.py # Environment configuration
└── requirements.txt
```
---
## 🧪 Testing (Coming Soon)
Unit and integration tests will be added using **pytest**.