Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

pyfunc/edix

Open more actions menu

Repository files navigation

Edix - Uniwersalny Edytor Struktur Danych

📋 Spis treści

  1. Wprowadzenie
  2. Wymagania systemowe
  3. Instalacja
  4. Konfiguracja
  5. Uruchomienie
  6. Testowanie
  7. Rozwój
  8. Wdrażanie
  9. Licencja

🌟 Wprowadzenie

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.

💻 Wymagania systemowe

  • 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)

📥 Instalacja

Środowisko wirtualne (zalecane)

# 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]"

Instalacja frontendu

cd frontend_src
npm install
npm run build
cd ..

⚙️ Konfiguracja

Skopiuj plik .env.example do .env i dostosuj ustawienia:

cp .env.example .env

Przykł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

🚀 Uruchomienie

Tryb deweloperski (z automatycznym przeładowaniem)

# Uruchom serwer backendowy
uvicorn edix.main:app --reload

# W osobnym terminalu uruchom frontend w trybie deweloperskim
cd frontend_src
npm run dev

Tryb produkcyjny

# Zbuduj frontend
cd frontend_src
npm run build
cd ..

# Uruchom serwer produkcyjny
uvicorn edix.main:app --host 0.0.0.0 --port 8000

Aplikacja będzie dostępna pod adresem: http://localhost:8000

🧪 Testowanie

Testy jednostkowe (backend)

# 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

Testy integracyjne

# Uruchom testy integracyjne
pytest tests/integration

Testy frontendowe

cd frontend_src

# Uruchom testy jednostkowe
npm test

# Uruchom testy z pokryciem
npm run test:coverage

Testy wydajnościowe

# Uruchom testy wydajnościowe z użyciem locust
locust -f tests/performance/locustfile.py

🔧 Rozwój

Struktura projektu

edix/
├── 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

Tworzenie migracji bazy danych

# Utwórz nową migrację
alembic revision --autogenerate -m "Opis zmiany"

# Zastosuj migracje
alembic upgrade head

# Cofnij migrację
alembic downgrade -1

🚀 Wdrażanie

Docker

# Zbuduj obrazy
docker-compose build

# Uruchom kontenery
docker-compose up -d

# Zatrzymaj kontenery
docker-compose down

Systemd (produkcja)

Przykł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.target

📄 Licencja

Ten projekt jest dostępny na licencji MIT. Zobacz plik LICENSE aby uzyskać więcej informacji.

👥 Wkład

  1. Sklonuj repozytorium
  2. Utwórz nowy branch (git checkout -b feature/nazwa-funkcjonalnosci)
  3. Zatwierdź zmiany (git commit -m 'Dodano nową funkcjonalność')
  4. Wypchnij zmiany (git push origin feature/nazwa-funkcjonalnosci)
  5. 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.

About

edix - uniwersalny edytor struktur danych z dynamicznym tworzeniem tabel SQL, wbudowanym frontendem i możliwością integracji z istniejącymi projektami.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.