Curricular Unit: Database and Web Applications Laboratory - 2024/25 1S
Faculty: FEUP
Professor: Sérgio Nunes
Authors: Bruno Oliveira, Henrique Fernandes, José Sousa, Rodrigo Silva
Grades:
ER Component: 97%
EBD Component: 98%
EAP Component: 98%
PA Component: 93%
Final Grade: 19.2/20
ProGram is a social networking platform being developed by a startup which aims to connect programmers with like-minded individuals. The need for a specialized space where technology professionals can connect, collaborate, and share knowledge drives this initiative. By providing an interactive and supportive environment, ProGram seeks to fill this gap within the tech community.
In order to run the project, it is necessary to login into gitlab.up.pt using docker:
docker login gitlab.up.pt:5050After that, the project is available by running the following command to download and run the container:
docker run -d --name lbaw2411 -p 8001:80 gitlab.up.pt:5050/lbaw/lbaw2425/lbaw2411This should make the website available at localhost:8001.
Administration URL: http://localhost:8001/admin
| Password | |
|---|---|
| kherrera@program.com | AdminsRule |
| Type | Username | Password |
|---|---|---|
| User | cindyburton@gmail.com | ILoveProgram |
Mailtrap URL: https://mailtrap.io/inboxes/3327402/messages
Login with the Google account:
| Password | |
|---|---|
| programlbaw@gmail.com | programlbaw2411 |
Pusher URL: https://dashboard.pusher.com/apps/1909573
Login with the Google account:
| Password | |
|---|---|
| programlbaw@gmail.com | programlbaw2411 |
We developed an external API which users can access with a generated token.
The API reference is located here: http://127.0.0.1:8001/apireference.
Tokens can be generated from the user settings or by filling this link: http://127.0.0.1:8001/user/{user-id}/token.
To use the API, we provide the following Postman collection: ProGram API
Alternatively, you can use the following Curl command structure to access the API:
curl -X GET "http://localhost:8001/api/<ROUTE>" \
-H "Authorization: Bearer <ACCESS_TOKEN>"In order to learn more about our project, we encourage you to check the following documents:
- Main wiki page
- ER: Requirements Specification
- EBD: Database Specification
- EAP: Architecture Specification and Prototype
- PA: Product and Presentation
- Some of the professors complained about the delivered (PDF) wikis not having selectable text. This is a problem with the "Print..." action in Firefox. Make sure to use a chromium-based browser (like Google Chrome) to print the wiki pages.
- For the wiki, you will have to write a lot of markdown, with a lot of tables. I recommend to use a formatter to keep everything in the tables aligned and tidy, like this extension for VSCode. Since the first two deliveries are the ones that require more things in the wiki, probably requiring a lot of collaboration, which is not feasible by using Liveshare alone, it may be wise to write everything in a Notion page and then copy it to the wiki.
- Most of the diagrams you need to create are not very sophisticated, so the best tool for the job is draw.io. Although we also created our wireframes in draw.io, it was a bit of a hassle, so I recommend using Figma instead.
- When doing the EBD component, more specifically the conceptual model, I would highly recommend to first make a draft of the model in paper, and then write a sharper version in draw.io by dividing the model into logical parts (classes/relationships related to posts, related to notifications, related to users, ...) and then join them all in the end. The diagram will be much easier to organize, trust me.
- As we did, it is a good idea to define your website's style in the EAP component. Work a little bit in Figma to decide on the style you'll like (e.g. for the home page), trying to use as little different components as possible, and implement the components in the prototype as separate views. This will make your website's look and feel much more consistent, and you will not have to worry about it later in the PA component.
- The parts that require the most work are objectively the EAP and PA components. For the PA specifically, try to have all features implemented before the last week. Trust me, you will still need a lot of time to fix HTML/CSS validation errors, usability and accessibility issues, make pages responsive, write the wiki and fix bugs (which will be much more severe than in the EAP component if left untreated!)
- Bruno Ricardo Soares Pereira de Sousa Oliveira, up202208700@up.pt
- Henrique Sardo Fernandes, up202204988@up.pt
- José Carlos Malheiro de Sousa, up202208817@up.pt
- Rodrigo Albergaria Coelho e Silva, up202205188@up.pt
GROUP2411, December 2024