Przykładowy projekt pod zajęcia z backendów: REST API w Django + osobny, uproszczony frontend (statyczny HTML/JS). Temat: zarządzanie firmowymi plikami (upload i udostępnianie), wewnętrzne wiadomości oraz lista zadań TODO.
  • Python 48.4%
  • JavaScript 30.7%
  • HTML 12.4%
  • CSS 8.5%
Find a file
2026-04-13 08:35:53 +02:00
backend wersja startowa 2026-04-13 08:35:53 +02:00
frontend wersja startowa 2026-04-13 08:35:53 +02:00
README.md wersja startowa 2026-04-13 08:35:53 +02:00
requirements.txt wersja startowa 2026-04-13 08:35:53 +02:00

Company Files (Django REST API + prosty frontend)

Przykładowy projekt pod zajęcia z backendów: REST API w Django + osobny, uproszczony frontend (statyczny HTML/JS). Temat: zarządzanie firmowymi plikami (upload i udostępnianie), wewnętrzne wiadomości oraz lista zadań TODO.

Struktura repozytorium

  • backend/ Django + Django REST Framework
  • frontend/ statyczny frontend (HTML/CSS/JS) komunikujący się z API
  • requirements.txt zależności Pythona dla backendu

Funkcjonalności (MVP)

  • Pliki:
    • upload plików i metadanych (tytuł)
    • lista plików: własne + udostępnione
    • pobieranie plików przez endpoint wymagający autoryzacji
    • udostępnianie pliku innemu użytkownikowi z uprawnieniem read lub write
  • Wiadomości:
    • inbox / outbox
    • wysyłanie wiadomości do użytkownika po username
    • oznaczanie wiadomości jako przeczytanej
  • TODO:
    • CRUD dla własnych zadań
    • oznaczanie zadania jako wykonane
  • Dokumentacja API:
    • OpenAPI schema + Swagger UI

Zastosowane rozwiązania (dlaczego „tak”)

  • Django REST Framework: serializery + viewsety + routery (klasyczny, dydaktyczny wzorzec).
  • JWT (SimpleJWT): pokazuje nowoczesny wariant autoryzacji dla SPA i klientów mobilnych.
  • CORS: ułatwia uruchomienie osobnego frontendu w przeglądarce podczas zajęć.
  • drf-spectacular: automatyczne OpenAPI + Swagger UI do testowania i prezentacji endpointów.
  • SQLite: minimalne wymagania do uruchomienia lokalnie (łatwe na laboratoria).

Uruchomienie (dev)

Wymagania:

  • Python 3.11+ (projekt działa na Python 3.13)

Backend

python3 -m pip install -r requirements.txt
cd backend
python3 manage.py migrate
python3 manage.py createsuperuser
python3 manage.py runserver

Linki (domyślnie):

Frontend (statyczny)

W osobnym terminalu:

cd frontend
python3 -m http.server 5173

Następnie otwórz: http://127.0.0.1:5173/

Frontend loguje się do /api/auth/token/ (JWT) i wykonuje przykładowe operacje: upload pliku, lista dokumentów, udostępnianie, TODO, wiadomości.

Szybki „smoke test” przez cURL

  1. Pobierz token:
curl -s -X POST http://127.0.0.1:8000/api/auth/token/ \
  -H 'Content-Type: application/json' \
  -d '{"username":"admin","password":"HASLO"}'
  1. Lista dokumentów:
curl -s http://127.0.0.1:8000/api/documents/ \
  -H "Authorization: Bearer ACCESS_TOKEN"

Na później ;-)

Rozbudowaną, bardziej „akademicką” instrukcję znajdziecie w repozytoryjnym wiki.