tasker/README.md
2025-05-17 08:29:30 +00:00

4.4 KiB

📝 Task Manager

Aplikacja webowa do zarządzania zadaniami. Pozwala użytkownikom na tworzenie kont, logowanie się, dodawanie, edytowanie i oznaczanie zadań jako wykonane, edycję profilu oraz usuwanie konta.


📆 Spis treści


📖 Wstęp

Task Manager to pełnoprawna aplikacja webowa do zarządzania zadaniami. Projekt składa się z:

  • Frontend: Vite + React + TypeScript
  • Backend: Flask + SQLAlchemy
  • Baza danych (obsługuje bazy MySQL i SQLite)

Funkcjonalności:

  • Rejestracja i logowanie użytkowników
  • Tworzenie, edycja, usuwanie zadań
  • Oznaczanie zadań jako wykonane/niewykonane
  • Edycja danych profilu
  • Zmiana hasła i usuwanie konta

📦 Architektura aplikacji

🔌 Frontend

  • Framework: React
  • Komunikacja z API: Axios

💻 Backend / API

  • Framework: Flask
  • ORM: SQLAlchemy
  • Autoryzacja: JWT + CSRF + Cookies

📊 Baza danych

  • SQLite (dla developmentu) lub MySQL (zalecane na produkcji)

🚀 Jak uruchomić aplikację lokalnie

Wymagania

  • Python 3.10+
  • Node.js + npm
  • (opcjonalnie) Docker

🔧 Backend

Zanim uruchomisz backend, ustaw zmienną do połączenia z bazą danych w następujący sposób:

  1. Jeśli zamierzasz wykorzystać MySQL:
  • SQLALCHEMY_DATABASE_URI=mysql+mysqlconnector://<nazwa_uzytkownika>:@<nazwa_hosta_bazy_danych>:<port_bazy_danych>/<nazwa_bazy_danych>
  1. Jeśli zamierzasz skorzystać z SQLite:
  • SQLALCHEMY_DATABASE_URI=sqlite:///test.db
  1. Stwórz i aktywuj wirtualne środowisko:
    cd api
    python -m venv venv
    source venv/bin/activate
    
  2. Zainstaluj zależności:
    pip install -r requirements.txt
    
  3. Uruchom serwer:
    python3 app.py
    

🖥️ Frontend

  1. Przejdź do folderu frontend:
    cd frontend
    
  2. Zainstaluj zależności:
    npm install
    
  3. Uruchom frontend:
    npm run dev
    

⚙️ Zmienne środowiskowe

Poniżej lista zmiennych środowiskowych dla backendu:

Nazwa Wymagana Opis
SQLALCHEMY_DATABASE_URI URI do bazy danych SQLite lub MySQL
JWT_SECRET_KEY Klucz JWT używany do podpisywania tokenów (zalecane)
TODOLIST_PORT Port, na którym uruchamia się API (domyślnie 80)
TODOLIST_ADMIN_USERNAME Nazwa użytkownika będącego domyślnym administratorem obecnym w bazie po inicjalizacji aplikacji (domyślnie admin).
TODOLIST_ADMIN_EMAIL Adres email domyślnego administratora aplikacji (domyślnie admin@example.pl).
TODOLIST_ADMIN_PASSWORD Hasło domyślnego administratora aplikacji (zalecane).
FRONTEND_ORIGIN Adres URL frontendu (np. http://localhost:5173) do ustawienia CORS/cookies (wymagany do połączenia frontendu z API, jeśli działają one w osobnych domenach, można podać więcej adresów rozdzielając je przecinkiem)

Poniżej lista zmiennych środowiskowych dla frontendu:

Nazwa Wymagana Opis
VITE_API_URL Adres URL backendu, z którym komunikuje się frontend. Ustawiany w pliku frontend/frontend.dockerfile przed zbudowaniem kontenera. Domyślnie /api, wartość tę zmień tylko, jeśli zamierzasz uruchomić backend nie wykorzystując Dockera lub poza siecią frontendu.

📅 Dalsze kroki

  • Przygotowanie stylów CSS dla aplikacji

Autor: Marcin Ramotowski
Licencja: MIT