PRO3ENG.rst

Programming Laboratory

Project

Project

Final project requirements:

Create a server application and an independent client that will interact between each other using REST API.

5 % - The server application should provide the data model for frontend in terms of: adding, deleting, editing, searching (listing) objects from the database. All assumptions as to the data model described for increment II are still valid

10 % - In addition, the application should have ONE endpoint providing one simple statistic: the number of elements, a set of categories (if it has sense), the average (if it makes sense), the best team (if it makes sense) etc., that is updated live on frontend with updating the objects.

5 % - The server application must use a database engine such as PostgreSQL, MySQL, MSSQL or similar. Communication between the server and the outside world must take place via the REST API.

40 % - The frontend application must be able to run independently (as a separate process) from the server application). The frontend application is to enable editing, adding, deleting data from the database and displaying them in the form of a table.

10 % - The backend application should be launched on an independent application server (eg Tomcat)

30 % - provide authorization blockade (any type of authorization) on access to one table (view of one of the tables)

(extra +20%) for external server authorization (any LDAP, google, twitter, facebook github etc.)

(extra +20%) possible for any single feature which were not discussed in the classroom such as: adding the "user session" service, integration of database support in the form of Liquibase, integration of Spring with another library, adding report elements (charts, summaries) on the front, adding tests to application, adding load tests, partitioning the database, adding a balancer to Tomcat, any other invented by the author.

In the case of not obtaining a total of 50% of points, for the subject the student is obliged as a "second attempt" to:

Present all missing projects.
Prepare material for single selected classes based on other technologies (different programming language, editor, program etc.)