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
System uwierzytelniania użytkowników
Operacje CRUD dla aktywności/postów
Automatyczne testy z Selenium
Kluczowe metryki
20+ automatycznych testów
5 walidatorów bezpieczeństwa
Wdrożenie na Heroku
Stos technologiczny
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
# 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.
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'}
}
}
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+
🔒 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+
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.