Stworzenie mobilnej aplikacji edukacyjnej
Stworzenie mobilnej aplikacji edukacyjnej w języku angielskim, polskim i niemieckim opracowana na dwa systemy Android i iOS na potrzeby szkoleniowe w projekcie Temicare 2.0. Zarządzana z poziomu serwisu internetowego opartym na rozwiązaniu WP (PHP)
I. Zamawiający
Pomorski Uniwersytet Medyczny w Szczecinie
II. Przedmiot zamówienia
Zaprojektowanie, wykonanie, wdrożenie oraz przekazanie kompletnej aplikacji webowej do przeprowadzania quizów edukacyjnych wraz z panelem administracyjnym. Termin realizacji: 31.08.2026.
III. Zakres funkcjonalny
Część użytkownika: rejestracja, logowanie, lista quizów, filtrowanie, rozwiązywanie quizów, historia wyników. Panel administratora: zarządzanie użytkownikami, quizami, pytaniami, raporty CSV, audit log.
IV. Wymagania techniczne
Frontend (Next.js)
• Next.js (najnowsza stabilna, App Router), TypeScript, Tailwind CSS lub równoważne
• Pełna responsywność dla urządzeń mobilnych Android i iOS – aplikacja w pełni funkcjonalna na ekranach od 320 px wzwyż; touch-friendly UI.
• Testowane na: iOS Safari, Android Chrome, oraz desktop Chrome/Firefox/Safari/Edge (dwie ostatnie wersje)
Backend (REST API)
• Python (FastAPI preferowane) lub Node.js (NestJS preferowane)
• Specyfikacja OpenAPI/Swagger generowana automatycznie
• Walidacja wejścia, spójna obsługa błędów, wersjonowanie /api/v1/...
• Paginacja, filtrowanie, sortowanie list; rate limiting
• Logi strukturalne (JSON) + monitoring (Sentry lub równoważny)
Baza danych
• PostgreSQL 15+, migracje wersjonowane
VI. Cache
• Cache dla: list quizów i kategorii, banku pytań, sesji, rate limitingu
• Dane wrażliwe (hasła, tokeny, dane osobowe) nie są cache'owane
• Po stronie Next.js; nagłówki HTTP (Cache-Control, ETag) dla niezmiennych zasobów
VII. Konteneryzacja
• Pełna dockeryzacja – cały stack uruchamiany jednym poleceniem docker compose up
• Dockerfile dla każdego serwisu z multi-stage build, non-root user, healthcheck
• Kontenery: frontend, backend, db (PostgreSQL), reverse-proxy (Nginx/Traefik/Caddy)
• Plik .env.example w repo, sieci i wolumeny nazwane
• Środowiska: dev (lokalnie), production
VIII. Bezpieczeństwo i zgodność
• HTTPS wszędzie, ochrona przed XSS/CSRF/SQLi/IDOR
• JWT (access + refresh w HttpOnly cookie), hasła argon2/bcrypt, RBAC
• Nagłówki bezpieczeństwa (CSP, HSTS itd.), restrykcyjne CORS
• Zgodność z RODO/GDPR (polityka prywatności, baner cookie, prawo do usunięcia konta)
• Brak sekretów w repozytorium
IX. Wymagania niefunkcjonalne
• Wsparcie min. 50 równoczesnych użytkowników podczas zajęć
• Czas odpowiedzi API < 300 ms (95. percentyl)
X. Dokumentacja
• README z instrukcją uruchomienia w Dockerze
• Dokumentacja API (Swagger UI), dokumentacja architektury i warstwy cache
• Instrukcja wdrożenia produkcyjnego, instrukcja dla administratora
XI. Harmonogram
Etapy oferty: (1) analiza i makiety, (2) setup infrastruktury i Dockera, (3) część użytkownika, (4) panel administracyjny, (5) testy, (6) wdrożenie. Dla każdego etapu prosimy podać zakres i czas.
XII. Wsparcie po wdrożeniu
• Gwarancja: 3 miesiące od daty wdrożenia produkcyjnego
• W okresie gwarancji: bezpłatna poprawa błędów wynikających z błędnej implementacji
• SLA czasu reakcji na zgłoszenia – do uzgodnienia
XIII. Kwestie formalne
• Pełne przeniesienie majątkowych praw autorskich do kodu po zapłacie
• Repozytorium w organizacji Zamawiającego (GitHub/GitLab) od pierwszego commita
XIV. Oczekiwane elementy oferty
1. Opis proponowanego rozwiązania i stosu (z uzasadnieniem Python vs Node.js)
2. Wycena z podziałem na etapy i harmonogram
3. Termin ważności oferty
4. Szkolenie z obsługi produktu (poziom administratora).
XV. Termin realizacji
Termin realizacji zamówienia: w nieprzekraczalnym terminie do dnia 30.09.2026 r.
Za termin realizacji uznaje się dzień podpisania protokołu odbioru końcowego bez zastrzeżeń albo
z zastrzeżeniami usuniętymi w terminie wskazanym przez Zamawiającego.
XVI. Gwarancja i rękojmia
Wymagany okres gwarancji i rękojmi: minimum 12 miesięcy, liczony od dnia podpisania protokołu odbioru końcowego.
XVII. Wymagania wobec Wykonawcy
1) Wykonawca powinien dysponować personelem posiadającym doświadczenie w projektowaniu, budowie, wdrażaniu oraz utrzymaniu aplikacji webowych, obejmującym co najmniej specjalistów z zakresu programowania frontend, backend, projektowania baz danych oraz zarządzania wdrożeniami systemów informatycznych.
2) Zamawiający może wymagać wykazania doświadczenia w wykonaniu co najmniej dwóch zamówień polegających na zaprojektowaniu, wykonaniu i wdrożeniu aplikacji webowej lub systemu informatycznego o porównywalnym stopniu złożoności, obejmujących część frontendową, backendową oraz bazę danych, zakończonych wdrożeniem produkcyjnym i przekazaniem systemu do użytkowania, o wartości nie mniejszej niż 50 000,00 zł netto każda usługa.
3) Wykonawca powinien zapewnić udział osób posiadających kwalifikacje i doświadczenie odpowiednie do realizacji zamówienia, w szczególności:
• kierownika projektu posiadającego doświadczenie w zarządzaniu projektami informatycznymi,
• programisty frontend posiadającego doświadczenie w technologii Next.js lub równoważnej,
• programisty backend posiadającego doświadczenie w technologii Python (FastAPI) lub Node.js (NestJS) bądź rozwiązaniu równoważnym,
• specjalisty ds. baz danych PostgreSQL,
• specjalisty ds. testów i wdrożeń systemów informatycznych.
4) Wykonawca powinien zapewnić, że osoby realizujące zamówienie posiadają doświadczenie w stosowaniu dobrych praktyk w zakresie bezpieczeństwa aplikacji webowych, w szczególności ochrony przed podatnościami OWASP Top 10, zarządzania uwierzytelnianiem i autoryzacją użytkowników oraz bezpiecznego przetwarzania danych osobowych zgodnie z obowiązującymi przepisami.
XVIII. Uwagi końcowe
1) Cena oferty powinna obejmować wszystkie koszty niezbędne do kompletnego wykonania przedmiotu zamówienia, w tym koszty materiałów i robocizny.
2) Jeżeli w toku realizacji ujawnione zostaną okoliczności techniczne niewynikające wprost
z dokumentów wyjściowych, a niezbędne dla kompletnego wykonania zadania, Wykonawca zobowiązany jest niezwłocznie zgłosić je Zamawiającemu i przedstawić propozycję rozwiązania.
3) W zakresie nieuregulowanym niniejszym OPZ zastosowanie mają obowiązujące przepisy prawa, normy, wytyczne gestorów infrastruktury oraz zasady wiedzy technicznej.
4) Cena oferty powinna obejmować wszystkie koszty niezbędne do kompletnego wykonania przedmiotu zamówienia, w szczególności koszty analizy przedwdrożeniowej, projektowania, wykonania, testowania, wdrożenia, konfiguracji środowisk, przygotowania dokumentacji, szkolenia administratorów, udzielenia gwarancji, przeniesienia autorskich praw majątkowych oraz wszelkich innych czynności niezbędnych do prawidłowego uruchomienia i użytkowania systemu.
5) Jeżeli w toku realizacji zamówienia ujawnione zostaną okoliczności techniczne lub organizacyjne niewynikające wprost z dokumentacji postępowania, a mające wpływ na prawidłowe wykonanie przedmiotu zamówienia, Wykonawca zobowiązany jest niezwłocznie poinformować o tym Zamawiającego oraz przedstawić propozycję rozwiązania wraz z uzasadnieniem. Wprowadzenie zmian może nastąpić wyłącznie po uzyskaniu akceptacji Zamawiającego.
6) Wykonawca zobowiązany jest dostarczyć kompletne, gotowe do produkcyjnego użytkowania rozwiązanie spełniające wszystkie wymagania określone w Opisie Przedmiotu Zamówienia, wraz z pełną dokumentacją techniczną i użytkową oraz kodami źródłowymi.
7) Oprogramowanie będące przedmiotem zamówienia nie może wykorzystywać komponentów ani bibliotek, których licencje uniemożliwiałyby Zamawiającemu swobodne korzystanie z systemu, jego rozwój, utrzymanie lub modyfikację po zakończeniu realizacji zamówienia.
8) W zakresie nieuregulowanym niniejszym Opisem Przedmiotu Zamówienia zastosowanie mają obowiązujące przepisy prawa, obowiązujące normy i standardy dotyczące tworzenia oprogramowania, bezpieczeństwa systemów teleinformatycznych oraz ochrony danych osobowych, a także powszechnie uznane zasady wiedzy technicznej i dobre praktyki inżynierii oprogramowania.