- Wprowadzenie
- Wymagania systemowe
- Instalacja
- Konfiguracja
- Uruchomienie
- Testowanie
- Rozwój
- Wdrażanie
- Licencja
Edix to zaawansowany edytor struktur danych z dynamicznym tworzeniem tabel SQL, wbudowanym frontendem i możliwością integracji z istniejącymi projektami. Pozwala na definiowanie i zarządzanie strukturami danych za pomocą intuicyjnego interfejsu użytkownika.
- Python 3.8+
- Node.js 16+ (tylko do rozwoju frontendu)
- SQLite (domyślnie) lub PostgreSQL/MySQL
- System operacyjny: Linux, macOS, Windows (z WSL2 zalecane dla Windows)
# Utwórz i aktywuj środowisko wirtualne
python -m venv venv
source venv/bin/activate # Linux/macOS
# lub
# .\venv\Scripts\activate # Windows
# Zainstaluj zależności
pip install -e .
# Zainstaluj zależności deweloperskie
pip install -e ".[dev]"cd frontend_src
npm install
npm run build
cd ..Skopiuj plik .env.example do .env i dostosuj ustawienia:
cp .env.example .envPrzykładowa konfiguracja:
# Tryb działania (development, production, test)
APP_ENV=development
# Ustawienia bazy danych
DATABASE_URL=sqlite+aiosqlite:///./edix.db
# Dla PostgreSQL:
# DATABASE_URL=postgresql+asyncpg://user:password@localhost/edix
# Ustawienia bezpieczeństwa
SECRET_KEY=twoj_tajny_klucz
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=1440
# Ustawienia aplikacji
API_PREFIX=/api/v1
FRONTEND_URL=http://localhost:3000# Uruchom serwer backendowy
uvicorn edix.main:app --reload
# W osobnym terminalu uruchom frontend w trybie deweloperskim
cd frontend_src
npm run dev# Zbuduj frontend
cd frontend_src
npm run build
cd ..
# Uruchom serwer produkcyjny
uvicorn edix.main:app --host 0.0.0.0 --port 8000Aplikacja będzie dostępna pod adresem: http://localhost:8000
# Uruchom wszystkie testy
pytest
# Uruchom testy z pokryciem kodu
pytest --cov=edix --cov-report=term-missing
# Uruchom testy z generowaniem raportu HTML
pytest --cov=edix --cov-report=html# Uruchom testy integracyjne
pytest tests/integrationcd frontend_src
# Uruchom testy jednostkowe
npm test
# Uruchom testy z pokryciem
npm run test:coverage# Uruchom testy wydajnościowe z użyciem locust
locust -f tests/performance/locustfile.pyedix/
├── edix/ # Kod źródłowy Pythona
│ ├── api/ # Endpointy API
│ ├── core/ # Logika biznesowa
│ ├── crud/ # Operacje na bazie danych
│ ├── db/ # Konfiguracja bazy danych
│ ├── models/ # Modele Pydantic i SQLAlchemy
│ ├── schemas/ # Schematy Pydantic
│ ├── static/ # Pliki statyczne
│ └── templates/ # Szablony HTML
├── frontend_src/ # Kod źródłowy frontendu
│ ├── public/ # Zasoby statyczne
│ └── src/ # Kod React
├── migrations/ # Migracje bazy danych
├── tests/ # Testy
│ ├── unit/ # Testy jednostkowe
│ ├── integration/ # Testy integracyjne
│ └── performance/ # Testy wydajnościowe
├── .env # Zmienne środowiskowe
├── .gitignore
├── pyproject.toml # Konfiguracja projektu Python
└── README.md # Ten plik
# Utwórz nową migrację
alembic revision --autogenerate -m "Opis zmiany"
# Zastosuj migracje
alembic upgrade head
# Cofnij migrację
alembic downgrade -1# Zbuduj obrazy
docker-compose build
# Uruchom kontenery
docker-compose up -d
# Zatrzymaj kontenery
docker-compose downPrzykładowa konfiguracja usługi systemd (/etc/systemd/system/edix.service):
[Unit]
Description=Edix Application
After=network.target
[Service]
User=www-data
Group=www-data
WorkingDirectory=/path/to/edix
Environment="PATH=/path/to/venv/bin"
ExecStart=/path/to/venv/bin/uvicorn edix.main:app --host 0.0.0.0 --port 8000
Restart=always
[Install]
WantedBy=multi-user.targetTen projekt jest dostępny na licencji MIT. Zobacz plik LICENSE aby uzyskać więcej informacji.
- Sklonuj repozytorium
- Utwórz nowy branch (
git checkout -b feature/nazwa-funkcjonalnosci) - Zatwierdź zmiany (
git commit -m 'Dodano nową funkcjonalność') - Wypchnij zmiany (
git push origin feature/nazwa-funkcjonalnosci) - Otwórz Pull Request
- Zarządzanie produktami/katalogami
Cały projekt jest production-ready i może być od razu opublikowany na PyPI, zintegrowany z istniejącymi aplikacjami lub użyty jako standalone CMS.