\ls1\ilvl0\cf0 {\listtext \uc0\u8226 }[OK] To start the web application you have to configure maven plugin. It is very important that it will be possible to start the web application from the command line. For example using the Cargo plugin with Tomcat, the following sequence of commands should start the web application: \'93mvn clean install && cd web && mvn cargo:run\'94. (Please note that Spring since version 5 does not work in Tomcat 7, so the maven tomcat7 plugin is not usable with recent versions of Spring. Use maven Cargo plugin with a recent version of Tomcat. See the example project in the master branch.)\
{\listtext \uc0\u8226 }[OK] The web application must be available at the following HTTP context http://localhost:8080/pa165\
{\listtext \uc0\u8226 }[OK] Your application should use in-memory database. This means that after application restart (killing web container and starting it again with mvn cargo:run) the data may be reset.\
{\listtext \uc0\u8226 }[OK] Implement the user interface using Spring MVC, or a Javascript framework like Angular, React or Vue.js. \
{\listtext \uc0\u8226 }[OK] The user interface should allow to carry out all business functions of your system.\
{\listtext \uc0\u8226 }[OK] You should fill in all the necessary data automatically. So for example you can use a Web Listener to load data during Web Application startup.\
{\listtext \uc0\u8226 }[OK] Make sure there are validations implemented at the user interface level.\
{\listtext \uc0\u8226 }[OK] Your user interface should use either a Facade layer or REST layer to access the system. Do not directly access database and do not directly use the Service layer.\
{\listtext \uc0\u8226 }[OK] The web interface layer may reside in a separate maven module (if this is helpful).\
{\listtext \uc0\u8226 }Each member of the team must implement (mostly independently) part of user interface. Including controllers and views.\
\ls2\ilvl0\cf0 {\listtext \uc0\u8226 }[OK] Your application should have a basic REST interface/API.\
{\listtext \uc0\u8226 }[OK] At least one entity and operations on that entity must be exposed.\
{\listtext \uc0\u8226 }[OK] This is mainly to demonstrate you can implement this, it is not necessary to have all application functions accessible through this interface.\
{\listtext \uc0\u8226 }[OK] The REST API must be accessible at http://localhost:8080/pa165/rest\
{\listtext \uc0\u8226 }[OK] It is not required to have the interface secured.\
{\listtext \uc0\u8226 }[OK] You should include a README file with instructions about how to test the REST interface (e.g. CURL commands for the command line).\
\ls3\ilvl0\cf0 {\listtext \uc0\u8226 }[OK] There should be at least two roles in the system (e.g. Administrator, User). Each role should have some differences in user interface or in capabilities.\
{\listtext \uc0\u8226 }[OK] There should be a login form (not HTTP Basic)\
{\listtext \uc0\u8226 }[OK] Registration is NOT required. You can prefill the users and their passwords in the database.\
{\listtext \uc0\u8226 }[OK] Password should not be saved in the database in open form.\