MVP aplikacji do planowania eventów.
- Backend: Python, FastAPI, JWT
- Dane: prosty plik
backend/data.json, bez SQLite i bez SQLAlchemy - Frontend: React + Vite
- Użytkownicy tworzą konta
- Każdy dodaje terminy, kiedy nie może
- Kalendarz pokazuje wspólne zajęte terminy
- Użytkownicy tworzą propozycje dat spotkań/wyjazdów i głosują za albo przeciw
- Administrator może dodawać, edytować i usuwać terminy wszystkich użytkowników
- Administrator może tworzyć, edytować i usuwać konta użytkowników
- Wszyscy zalogowani widzą listę użytkowników
cd backend
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reloadAPI działa na:
http://localhost:8000
Swagger:
http://localhost:8000/docs
cd frontend
npm install
npm run devFrontend działa na:
http://localhost
docker compose up --buildFrontend działa na:
http://localhost
API działa na:
http://localhost:8000
Przy pustym wolumenie Docker utworzy konto administratora:
login: admin
hasło: admin123
Możesz zmienić dane admina i sekret JWT przez zmienne środowiskowe:
ADMIN_USERNAME=admin ADMIN_PASSWORD=strong-password SECRET_KEY=change-me docker compose up --builddocker-compose.yml przekazuje ADMIN_USERNAME i ADMIN_PASSWORD do backendu.
Backend czyta je przy starcie i tworzy albo aktualizuje konto administratora o tej nazwie.
Po pierwszym uruchomieniu backend utworzy plik:
backend/data.json
Możesz go usunąć, żeby zresetować użytkowników i terminy.
W Dockerze dane są trzymane w wolumenie backend-data.
Ustaw SECRET_KEY jako zmienną środowiskową. Ten projekt jest prostym MVP, więc JSON jest OK do nauki/demo, ale do wielu użytkowników naraz lepsza będzie normalna baza danych.