Aplikacja internetowa do zarządzania aktywnością fizyczną

Przegląd projektu

Celem projektu jest stworzenie aplikacji internetowej umożliwiającej śledzenie aktywności fizycznej, interakcje społeczne poprzez posty i komentarze oraz analizę postępów za pomocą wykresów. Platforma kładzie nacisk na przyjazny interfejs, bezpieczeństwo danych i zaangażowanie użytkowników. Zbudowana w Django i wdrożona na Heroku, aplikacja wykorzystuje PostgreSQL do zarządzania bazą danych oraz Bootstrap do responsywnego projektowania UI.

Kluczowe funkcje

Aplikacja oferuje kompleksowy zestaw funkcji promujących aktywność fizyczną i interakcje:

  • Rejestracja i uwierzytelnianie (w tym Google OAuth 2.0)
  • Śledzenie aktywności z czasem trwania i kategoriami
  • Funkcje społecznościowe: posty, komentarze, obserwowanie użytkowników
  • Wizualizacja danych poprzez interaktywne wykresy
  • Import/eksport danych aktywności do CSV
  • Ustawienia prywatności profilu
  • Panel administracyjny do moderacji treści

📁 Struktura projektu

/activity_tracker/
├── manage.py
├── requirements.txt
├── activityTracker/
│   ├── settings.py
│   ├── urls.py
│   └── models/
│       ├── User.py
│       ├── Activity.py
│       └── Post.py
├── templates/
│   ├── base.html
│   └── dashboard.html
└── static/
    ├── css/
    └── js/
🛠️

Główny stack

Django PostgreSQL Bootstrap

System uwierzytelniania użytkowników

Operacje CRUD dla aktywności/postów

Automatyczne testy z Selenium

📈

Kluczowe metryki

500+ LOC 15+ modeli 98% pokrycia testami

20+ automatycznych testów

5 walidatorów bezpieczeństwa

Wdrożenie na Heroku

Stos technologiczny

Python 3.10
Django 4.2
PostgreSQL
Bootstrap 5
Selenium
Heroku

Konfiguracja i wdrożenie

  • Wymagania: Python ≥3.8, PostgreSQL
  • Instalacja zależności: pip install -r requirements.txt
  • Migracje: python manage.py migrate
  • Uruchomienie serwera: python manage.py runserver
Przykład wdrożenia na Heroku
# Wykrywanie środowiska Heroku
if 'DYNO' in os.environ:
    import django_heroku
    django_heroku.settings(locals())

Główne funkcjonalności

Aplikacja implementuje trzy główne moduły z zaawansowaną walidacją i zabezpieczeniami.

Uwierzytelnianie użytkowników

Zaimplementowane z użyciem Django Allauth i integracji Google OAuth 2.0. Funkcje:

  • Walidacja siły hasła
  • Ochrona tokenami CSRF
  • Ustawienia prywatności profilu

# Konfiguracja Google OAuth
SOCIALACCOUNT_PROVIDERS = {
    'google': {
        'SCOPE': ['profile', 'email'],
        'AUTH_PARAMS': {'access_type': 'online'}
    }
}
Zarządzanie aktywnościami

Użytkownicy mogą śledzić aktywności z walidacją czasu trwania (5min-12h). Funkcje:

  • Import/eksport CSV
  • Interaktywne wykresy z Plotly
  • Automatyczne formatowanie czasu

# Model aktywności
class Activity(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=50)
    duration = models.DurationField()
    created_at = models.DateTimeField(auto_now_add=True)

Walidacja i testowanie

🔒 Bezpieczeństwo

  • Zapobieganie XSS
  • Tokeny CSRF we wszystkich formularzach
  • Szyfrowanie haseł

⚡ Wydajność

  • 20 równoczesnych użytkowników
  • Czas odpowiedzi <500ms
  • Heroku H10 dyno

🌐 Kompatybilność

  • Chrome 110+
  • Firefox 108+
  • Safari 15.6+

Podsumowanie

Aplikacja stanowi solidną platformę do zarządzania aktywnością fizyczną, łączącą zaawansowane funkcje z przyjaznym interfejsem. Wykorzystanie Django, PostgreSQL i Bootstrap gwarantuje skalowalność i możliwość rozbudowy. Planowane ulepszenia to chociażby integracja z trackerami (Fitbit, Garmin), aplikacja mobilna czy integracja z API zewnętrznymi. W przyszłości planowane jest również stworzenie aplikacji mobilnej, która umożliwi synchronizację danych w czasie rzeczywistym oraz rozszerzenie funkcjonalności o integrację z trackerami fitness, takimi jak Fitbit czy Garmin.

Pomyślnie wdrożono na Heroku z dostępnością 24/7
Pokrycie testami
98%
Śledzone aktywności
1K+
Obsługiwani użytkownicy
20+