50 lines
1.4 KiB
Markdown
50 lines
1.4 KiB
Markdown
# Backend for Glass Cutting Optimization
|
|
|
|
This directory contains the FastAPI backend application.
|
|
|
|
## Setup
|
|
|
|
1. **Create a virtual environment:**
|
|
```bash
|
|
python -m venv venv
|
|
source venv/bin/activate # On Windows use `venv\Scripts\activate`
|
|
```
|
|
2. **Install dependencies:**
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
3. **Configure environment variables:**
|
|
Create a `.env` file in this directory based on `.env.example` (you'll create this later).
|
|
4. **Run database migrations (using Alembic):**
|
|
```bash
|
|
# Initialize alembic (only once)
|
|
# alembic init alembic
|
|
|
|
# Edit alembic.ini and alembic/env.py to point to your models and database URL
|
|
# ...
|
|
|
|
# Create a migration
|
|
# alembic revision --autogenerate -m "Initial migration"
|
|
|
|
# Apply the migration
|
|
# alembic upgrade head
|
|
```
|
|
5. **Run the development server:**
|
|
```bash
|
|
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
* `app/`: Main application code
|
|
* `core/`: Configuration, settings, dependencies
|
|
* `db/`: Database session management
|
|
* `models/`: SQLAlchemy models
|
|
* `schemas/`: Pydantic schemas
|
|
* `routers/`: API route handlers
|
|
* `services/`: Business logic
|
|
* `alembic/`: Database migration scripts
|
|
* `tests/`: Application tests
|
|
* `.env`: Environment variables (local)
|
|
* `alembic.ini`: Alembic configuration
|
|
* `requirements.txt`: Python dependencies |