Skip to content

Projekt aplikacji LSPD (Los Santos Police Department)

Wymagania funkcjonalne

  1. System logowania i autoryzacji:

    • Dostęp tylko dla członków LSPD.
    • Logowanie na podstawie konta tabletu.
    • Przydzielanie uprawnień na podstawie rangi (np. Kadet, Oficer, Dowódca).
  2. Panel główny:

    • Podsumowanie kluczowych informacji, takich jak:
      • Aktywne zgłoszenia.
      • Lista poszukiwanych osób.
      • Statystyki (np. liczba aresztowań, mandaty).
  3. Baza danych przestępców:

    • Rejestr osób aresztowanych z możliwością:
      • Dodawania nowych wpisów.
      • Aktualizacji danych (np. status wyroku).
      • Wyszukiwania po nazwisku, numerze ID lub innych danych.
  4. System mandatów:

    • Możliwość wystawiania mandatów:
      • Automatyczny zapis w bazie danych.
      • Opcja wyszukiwania i edytowania wystawionych mandatów.
  5. Wsparcie dla patroli:

    • Rejestracja rozpoczęcia i zakończenia zmiany patrolowej.
    • Tworzenie raportów z patroli:
      • Miejsce zdarzenia.
      • Opis sytuacji.
      • Podjęte działania.
  6. System zgłoszeń:

    • Przyjmowanie i zarządzanie zgłoszeniami od obywateli:
      • Podgląd lokalizacji zgłoszenia.
      • Przypisywanie zgłoszeń do jednostek w terenie.
    • Oznaczanie zgłoszeń jako zakończone.
  7. Powiadomienia:

    • Automatyczne powiadomienia o nowych zgłoszeniach lub poszukiwaniach.
    • Możliwość ręcznego wysyłania powiadomień przez dowódców.
  8. Historia i statystyki:

    • Przegląd działań LSPD:
      • Raporty z patroli.
      • Liczba mandatów i aresztowań.
    • Statystyki indywidualne dla funkcjonariuszy (np. aktywność w ciągu tygodnia).

Architektura aplikacji

Struktura bazy danych

Tabela: tablet_LSPDCriminalRecords

PoleTypOpis
idINTKlucz główny
nameVARCHAR(100)Imię i nazwisko
crime_typeVARCHAR(100)Typ przestępstwa
officer_idINTID funkcjonariusza
dateDATETIMEData zdarzenia
statusVARCHAR(50)Status (np. Zatrzymany, Poszukiwany)

Tabela: tablet_LSPDFines

PoleTypOpis
idINTKlucz główny
citizen_idINTID obywatela
officer_idINTID funkcjonariusza
amountINTKwota mandatu
reasonTEXTPowód wystawienia
issued_atDATETIMEData wystawienia

Tabela: tablet_LSPDPatrols

PoleTypOpis
idINTKlucz główny
officer_idINTID funkcjonariusza
start_timeDATETIMECzas rozpoczęcia patrolu
end_timeDATETIMECzas zakończenia patrolu
reportTEXTRaport z patrolu

Tabela: tablet_LSPDIncidents

PoleTypOpis
idINTKlucz główny
locationVARCHAR(100)Lokalizacja zdarzenia
descriptionTEXTOpis zdarzenia
statusVARCHAR(50)Status (np. W toku, Zakończone)
assigned_toINTID funkcjonariusza przypisanego
reported_atDATETIMEData zgłoszenia

Backend w Lua

Przykładowe funkcje serwera:

  1. Dodawanie przestępcy do rejestru:
lua
RegisterServerEvent('lspd:addCriminalRecord')
AddEventHandler('lspd:addCriminalRecord', function(name, crime_type, officer_id, status)
    local query = [[INSERT INTO tablet_LSPDCriminalRecords (name, crime_type, officer_id, date, status) VALUES (?, ?, ?, NOW(), ?)]]
    MySQL.insert.await(query, {name, crime_type, officer_id, status})
end)
  1. Wystawianie mandatu:
lua
RegisterServerEvent('lspd:issueFine')
AddEventHandler('lspd:issueFine', function(citizen_id, officer_id, amount, reason)
    local query = [[INSERT INTO tablet_LSPDFines (citizen_id, officer_id, amount, reason, issued_at) VALUES (?, ?, ?, ?, NOW())]]
    MySQL.insert.await(query, {citizen_id, officer_id, amount, reason})
end)
  1. Rejestracja patrolu:
lua
RegisterServerEvent('lspd:startPatrol')
AddEventHandler('lspd:startPatrol', function(officer_id)
    local query = [[INSERT INTO tablet_LSPDPatrols (officer_id, start_time) VALUES (?, NOW())]]
    MySQL.insert.await(query, {officer_id})
end)

RegisterServerEvent('lspd:endPatrol')
AddEventHandler('lspd:endPatrol', function(patrol_id, report)
    local query = [[UPDATE tablet_LSPDPatrols SET end_time = NOW(), report = ? WHERE id = ?]]
    MySQL.update.await(query, {report, patrol_id})
end)

Frontend (Vue.js)

Widoki:

  1. Panel główny:
    • Statystyki dzienne i aktywne zgłoszenia.
  2. Baza danych przestępców:
    • Wyszukiwanie i edytowanie danych.
  3. System mandatów:
    • Lista wystawionych mandatów.
    • Formularz wystawiania nowego mandatu.
  4. Patrole:
    • Rejestrowanie zmiany i dodawanie raportów.
  5. Zgłoszenia:
    • Podgląd i przypisywanie zgłoszeń do funkcjonariuszy.