IPW_IP 2425 1 A4 - isel-leic-ipw/2425i-IPW-LEIC33D GitHub Wiki

Instituto Superior de Engenharia de Lisboa
Bachelor in Computer Science and Computer Engineering
Bachelor in Informatics, Networks and Telecommunications Engineering
Internet Programming/Introduction to Web Programming
Winter Semester of 2024/2025 – 4th practical assignment - FOCCACIA - Part3
---

Delivery

Due date for this assignment: 05/01/2025-23h59.

Delivery method

The development of the FOCCACIA application has 3 development cycles, phased in three parts. For each one, the deadline for delivering the solution will be defined, and it will be a non-negotiable requirement.

This document includes the requirements of part 3 of the FOCCACIA application. The assignment should be delivered in the same Git repository used in part 1, by creating a tag called FOCCACIA-P3. If you need to make some changes to the delivery, just create another tag named FOCCACIA-P3.1, FOCCACIA-P3.2, etc.

The main goals of this part are adding authentication to the web application with user interface (web site), and support the PUT and DELETE operations not implemented in the previous phase, using JavaScript on the client side.

Functional requirements

  1. Add user registration and authentication functionality to the FOCCACIA application. All event group management features must be accessible only to authenticated users. Groups are private to each user and can only be manipulated by their owner. The authentication must be implemented with the Passport module.

  2. (optional) All functionalities available in the Web API developed in FOCCACIA part 1, must be available also through the user interface available at the web site. The DELETE and PUT operations available in the Web API may be used by the web site pages to implement the corresponding functionalities, with client JavaScript on the web page using the browser fetch() function to make the HTTP requests.

Again, as it was a requirement for part 2, when using the web application, in no situation the (human) user will have to know and/or introduce any id for groups or teams or leagues. The only situations in which it is allowed to write the name of a team is to carry out searches in order to obtain a list of results. The only situation in which it is allowed to manually enter the name of a group is when creating or editing that group.

Non-functional requirements

  1. With this part of the work, a report must be delivered to the group's repository wiki, describing the implementation of the full work developed during the semester. Thus, the intermediate states that the implementation went through in each of the phases should not be included. The report must include:
    • Description of the application structure, in both components (server and client).
    • Data storage design (i.e. in ElasticSearch), namely: index or indices; document properties; relations between documents, if exit; etc.
    • Description of the mapping between the ElastictSearch’s FOCCACIA documents and the web application objects model.
    • Server API documentation.
    • Instructions for all the previous steps that are necessary to run the application and the respective tests.
      • These steps must include the actions necessary for the automatic introduction of test data, so that it is possible to run the application with data.
      • Instructions must have all the information needed to run the application on any machine, namely the teacher's. The instructions to make the application run should be executed in a maximum of 5 min.
⚠️ **GitHub.com Fallback** ⚠️