Quest: Aplikacja bazodanowa cz.1

Opis aplikacji

Aplikacja ma być bazą informacji o sprzęcie IT używanym w firmie. Gromadzone informacje mają obejmować:

  • Szczegółowe informacje o parametrach sprzętu
  • Informacje o lokalizacji sprzętu w budynku
  • Podstawowe informacje o użytkownikach aplikacji i uprawnieniach
  • Historię operacji wykonywanych w aplikacji

Stara wersja aplikacji wyglądała tak:

Nowa wersja ma działać na tej samej bazie danych. Stara baza danych wygląda tak:

CREATE TABLE `urzadzenia` (
  `id` int(11) NOT NULL,
  `uwiw` text NOT NULL,
  `kategoria` text NOT NULL,
  `sala` text NOT NULL,
  `lpwsali` text NOT NULL,
  `model` text NOT NULL,
  `wyglad` text NOT NULL,
  `procesor` text NOT NULL,
  `ram` text NOT NULL,
  `plyta` text NOT NULL,
  `dysk` text NOT NULL,
  `przekatna` text NOT NULL,
  `mac` text NOT NULL,
  `licencje` text NOT NULL,
  `inne` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin2;

CREATE TABLE `uzytkownicy` (
  `id` int(9) NOT NULL AUTO_INCREMENT,
  `login` text NOT NULL,
  `imie` text NOT NULL,
  `nazwisko` text NOT NULL,
  `ranga` text NOT NULL,
  `has` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=latin2;

CREATE TABLE `wydarzenia` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_urzadzenia` int(11) NOT NULL,
  `data` date DEFAULT NULL,
  `typ_wydarzenia` text NOT NULL,
  `opis` text NOT NULL,
  `status` text NOT NULL,
  `ip` text,
  `user` text,
  `dataczas` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4243 DEFAULT CHARSET=latin2;

//Fragment przykładowych danych
INSERT INTO `urzadzenia` VALUES (1,'S_UW/IW/367','serwer','324 zapl','1','','Serwer Dell','Xeon','1GB','','','','','ws2003',''),(2,'ZZS S_UWIW 218','serwer','308z','1','','Serwer Dell','Xeon','1GB','','','','','ws2003',''),(3,'S_UW/IW/176','serwer','308z','2','','Serwer Składak','','','','2 hdd 160GB','','','',''),(4,'S_UWIW','serwer','308z','','MAC serwer Model A1186 EMC No: 2113','Srebrny MAC','','1GB?','','hdd 160GB?','','','OSX',''),(5,'UWIW 459,457,456','serwer','308z','3','NAS Qnap TS-219P?','NAS','','','','2 hdd 1TB','','','QOS',''),(6,'UW/IW/632','serwer','308z','4','NAS Qnap TS-669PRO','NAS','Intel Atom D2700 2130 MHz','1GB','','6 hdd 2TB','','','QOS',''),(7,'UW/IW/633','serwer','308z','5','HP ML310eGen8v2','','Xeon E3-1240v3','16GB','','2 hdd 2TB','','','ws2012 HyperVcore',''),(8,'UWIW/552','komputer','322','1','stacjonarny i5-4430 GA-B85M','Brutus','i5 4430 3GHz','8GB','Gigabyte GA-B85M-HD3','HDD 500GB wcc1u3907310','','94-DE-80-B5-77-92','w7hoem','Kupione z obudowami Logic teraz obudowy Brutus');)
INSERT INTO `wydarzenia` VALUES (1,1,'1980-01-01','zakup','data niepewna','potwierdzony','10.1.1.1','admi','2018-01-01 07:00:00'),(2,2,'1980-01-01','zakup','data niepewna','potwierdzony','10.1.1.1','admi','2018-01-01 07:00:00'),(3,3,'1980-01-01','zakup','data niepewna','potwierdzony','10.1.1.1','admi','2018-01-01 07:00:00'),(4,4,'2007-01-01','zakup','data niepewna','potwierdzony','10.1.1.1','admi','2018-01-01 07:00:00'),(5,5,'2012-01-01','zakup','','potwierdzony','10.1.1.1','admi','2018-01-01 07:00:00'),(6,6,'2015-01-01','zakup','','potwierdzony','10.1.1.1','admi','2018-01-01 07:00:00'),(7,7,'2015-01-01','zakup','','potwierdzony','10.1.1.1','admi','2018-01-01 07:00:00'),(8,8,'2013-09-01','zakup','','potwierdzony','10.1.1.1','admi','2018-01-01 07:00:00'),(9,9,'2013-09-01','zakup','','potwierdzony','10.1.1.1','admi','2018-01-01 07:00:00'),(10,10,'2013-09-01','zakup','','potwierdzony','10.1.1.1','admi','2018-01-01 07:00:00'),(11,11,'2013-09-01','zakup','','potwierdzony','10.1.1.1','admi','2018-01-01 07:00:00');)


Etap 1 – API

  • Utwórz instalator tworzący bazą danych wraz z danymi testowymi.
  • Zaprojektuj i napisz REST API w PHP. Dane przekazywać będziemy jako json. Wykonaj testy.

Etap 2 – Szkielet frontendu

Utwórz w HTML i CSS layout zgodny z layoutem starej wersji:

  • Wykorzystaj bibliotekę Bootstrap
  • Wypełnij statycznymi danymi
  • Zbuduj wygląd głównej tabeli (dynamiczne komponenty aplikacji utworzymy później). Użyj css grid w oparciu o Bootstrapa lub np. tak jak w tym queście
  • W nagłówku zaplanuj miejsce na komponent nawigacji i na komponent filtrów
  • W stopce zaplanuj miejsce na komponent statystyk/liczników
  • Zadbaj o responsywność

Etap 3 – Struktura aplikacji React

Na bazie przygotowanego szkieletu HTML utwórz strukturę aplikacji React (Vite):

  • plik index.html
  • plik src/index.css
  • plik src/main.jsx
  • plik src/App.jsx
  • plik src/App.css
  • Komponenty należy tworzyć w src/components. Nazwa pliku to nazwa komponentu – zawsze zaczyna się od dużej litery. Style css komponentu wstawiaj w osobnych plikach o tej samej nazwie.

Przenieś statyczne treści ze szkieletu do odpowiednio nazwanych komponentów. Podziel też css.

Etap 4 – połączanie z API

Główną tabelę aplikacji napełnij danymi z bazy danych poprzez API.


Tagi: Brak tagów

Twój komentarz

Zapisz moje dane, adres e-mail i witrynę w przeglądarce aby wypełnić dane podczas pisania kolejnych komentarzy.