Witam :),
Nazywam się Daniel Olszewski i jestem uczniem 2 klasy technikum o profilu informatycznym.
Tak jak w temacie potrzebuje pomocy ze stworzeniem aplikacji WEB. Dostałem zadanie stworzyć aplikacje od firmy w której to chciałbym załatwić sobie praktyki. To zadanie ma sprawdzić moje umiejętności nauki, wyszukiwania oraz przyswajania informacji.
Od razu mówię, że jeżeli zakładam temat w złym miejscu to przepraszam ale nie jestem zbytnio obeznany :).
Przesyłam treść zadania:
Zadanie testowe:
Technologie:Apache Maven 3 Apache Tomcat 8 Java 7 Apache POI Hibernate PostgreSQL Spring MVC JSP, HTML 5, jQuery Tiles 3 Bootstrap Założenia realizacyjne:
Aplikacja WEB, frontend wykonany z użyciem JSP, HTML 5, jQuery oraz Bootstrap. Frontend składany z użyciem Tiles. Całość wykonana z użyciem frameworka Spring MVC. Warstwa DAO z użyciem Hibernate, baza danych PostgreSQL. Aplikacja budowana Maven, osadzona na serwerze aplikacyjnym Tomcat. Do parsowania plików XLS i XLSX należy użyć biblioteki Apache POI.
Założenia funkcjonalne:
Pierwsza cześć aplikacja ma umożliwić zaimportowanie plików XLS i XLSX do odpowiedniej tabeli w bazie danych.
Interfejs użytkownika ma umożliwić wskazanie pliku do zaczytania oraz informować o wyniku operacji (import z błędami wraz ze wskazaniem błędu np niepoprawny format pliku, import poprawny itp). Po stronie serwera, aplikacja ma dokonać walidację pliku pod względem formatu (tylko XLS i XLSX) oraz zweryfikować poprawności formatu danych (data, wartości liczbowe, zmiennoprzecinkowe itp), czyli zabezpieczyć przed wprowadzeniem niepoprawnej wartości w danej kolumnie.
W importowanym pliku pierwsza kolumna określa system do którego dane są importowane. Lista dostępnych systemów znajduje się w tabeli System. Aplikacja na podstawie nazwy systemu powinna wyszukać identyfikator systemu i wykorzystać go podczas zapisu danych do tabeli SystemContract.
Druga cześć aplikacji powinna umożliwić prezentację danych zapisanych w tabeli SystemContract w formie tabelki z użyciem pluginu jQuery DataTable. Prezentacja danych zgodna z formatem pliku Excel.
Pod tabelką powinien znajdować się formularz pozwalający na dodawanie i edycję danych. Po kliknięciu w wybrany wiersz tabeli dane przenoszą się do formularza umożliwiając edycję. W tabeli w dodatkowej kolumnie powinien znajdować się link pozwalający na usunięcie danego wpisu (operacja wykonywana po dodatkowym potwierdzeniu przez użytkownika).
Zalecane by zarówno import jak i tabelka znajdowały się na jednej wspólnej stronie.Dane testowe należy przyjąć zgodnie ze strukturą tabel. W załączniku struktura pliku Excel, poniżej struktura tabel które należy zaimplementować po stronie bazy danych. Struktura tabel: tabela zawierająca listę zdefiniowanych systemów system ( id bigint NOT NULL, description character varying(500), name character varying(50), support_group character varying(50) ) Primary Key(id) UNIQUE(name) UNIQUE(support_group) tabela zamówień w ramach danego systemu system_contract ( id bigint NOT NULL, active boolean, amount numeric(19,2), amount_period character varying(5), amount_type character varying(5), authorization_percent numeric(19,2), from_date date, order_number character varying(12), request character varying(12), to_date date, system_id bigint, ) Primary Key(id)czwartku Foreign Key (system_id) -> System (id) UNIQUE (request, system_id)
Nie proszę oczywiście o wykonanie aplikacji za mnie ^^. jak na razie to co udało mi się zrobić to projekt z użyciem Eclipse MARS, Spring MVC oraz Apache Tiles z użyciem tego poradnika: http://o7planning.org/web/fe/default/en/document/920321/using-template-in-spring-mvc-with-apache-tiles
Efekt umieszczam w załączniku obraz.jpg.
Przesyłam również obraz ze screenem z eclipse (screen.jpg).
W następnym kroku chciałbym utworzyć przycisk taki jak Home i Contact Us z tym że umożliwiający zaimportowanie plików XLS i XLSX do odpowiedniej tabeli w bazie danych.
W każdym razie tak mi się wydaje że powinienem to zrobić :), jeżeli nie to proszę o porady i informacje, tak jak mówiłem jestem zielony w praktycznie wszystko co tutaj jest zawarte :).