Projekt zrealizowany w trakcie przedmiotu Programowanie Aplikacji Mobilnych i Webowych.
- Cel projektu
- Opis projektu
- Uruchomienie aplikacji
- Funkcjonalność
- Etapy tworzenia projektu
- Rozwój projektu
Stworzenie aplikacji do zarządzania źródłami w pracach naukowych.
Aplikacja napisana jest w języku Python z użyciem bibliioteki Flask. Wykorzystywana jest również baza danych Redis. Całość aplikacji uruchamiana jest za pomocą Dockera. Aplikacja wykorzystuje Bootsrapa w celu dostosowania wyglądu na urządzenia mobilne. Logowanie zrealizowane jest za pomocą protokołu OAuth 2.0.
Aplikacja służy do zarządzania źródłami w pracach naukowych.
Projekt składa się z dwóch głównych modułów zdefiniowanych w pliku docker-compose.yml
:
web-front
- moduł odpowiada za obsługę komunikacji z użytkownikiem. Służy do obsługi logowania poprzez serwisauth0.com
oraz do komunikacji z modułemweb-files
.web-files
- moduł zrealizowany jako usługa sieciowa typu RESTFull API obsługujący zapis w bazie danych publikacji oraz plików z nimi powiązanych.
Aplikacja pozwala na:
- dodawanie pozycji bibliograficznej,
- listowanie pozycji bibliograficznych,
- usuwaniu pozycji bibliograficznych,
- podpinanie i odpinanie plików przy pozycji bibliograficznej,
- dodawanie, pobieranie i usuwanie plików.
Komunikacja może zostać zrealizowana poprzez aplikację kliencką znajdująca się domyślnie pod adresem: https://localhost:8080 oraz REST API znajdujące się pod adresem: https://localhost:8081.
Działająca aplikacja.
API posiada dokumentację w platformie Swagger znajdującą się pod adresem: https://localhost:8081.
Dokumentacja REST API w plaformie Swagger.
Aplikację można uruchomić za pomocą Dockera.
Przed uruchomieniem należy utworzyć plik .env w katalogu głównym repozytorium. W pliku należu zdefiniować zmienną FLASK_SECRET.
Należy również zadbać o własną konfiguraję auth0.com
. Należy uwzględnić zmienną OAUTH_CLIENT_SECRET, którą należy zdefiniować w pliku .env oraz zmienne w pliku const_config.py.
Projekt można uruchomić używając w katalogu głównym repozytorium polecenia:
docker-compose up --build
Opracowanie formularza rejestracyjnego dla nowych użytkowników. Formularz musi pozwalać na walidowanie wszystkich pól na bieżąco. Kod JavaScript, HTML i CSS muszą być od siebie odseparowane. Komunikaty błędów muszą być tworzone dynamicznie przez kod JS. Polę login użytkownika będzie sprawdzane pod kątem dostępności asynchronicznie. Dane do rejestracji będą przesyłane do na zewnętrzny serwer. Kod HTML i CSS musi przechodzić walidację.
Opracowanie modułu służącego do bezpiecznego logowania i wylogowywania użytkownika. Moduł logowania otrzymuje od użytkownika hasło i login – w przypadku poprawnych danych generowany jest identyfikator sesji. Dane sesyjne przechowywane są w bazie danych Redis. Należy opracować formularz pozwalający na przechowywanie przez użytkownika plików PDF w systemie. Pliki PDF powinny być dostępne do pobrania i serwowane przez bezstanową aplikację. Należy wykorzystać JWT z krótką datą ważności.
Celem etapu jest przygotowanie usługi sieciowej pozwalającej na przechowywanie i modyfikację pozycji bibliograficznych. Usługa sieciowa powinna zwracać powiązane elementy zgodnie z HATEOAS.
Aplikacja kliencka ma zostać dostosowana do użycia mobilnego. Można w tym celu wykorzystać Bootstrapa.
Projekt w stanie bezpośrednio po tym etapie można znaleźć w zakładce release.
Celem etapu jest zintegrowanie logowania do aplikacji z wykorzystaniem OAuth2.0. Najlepiej wykorzystać auth0.com.
Projekt w stanie bezpośrednio po tym etapie można znaleźć w zakładce release.
- Zmiana bazy danych na SQL (np. PostgreSQL),