Logo Sapienza Logo Sapienza Gamification Lab

WASA - Web and software architecture

WASA - Web and software architecture

Prof. Emanuele Panizzi




Wednesday, 21 February 2024

Extraordinary appeal: 16th April


The extraordinary appeal will be on Tuesday, April 16th. Register on Infostud by April 10. We will evaluate homework every Wednesday, plus everyday from April 4 to April 11.




Friday, 16 February 2024

Exam schedule available for February’s appeal


The exam schedule for oral discussions is available here: Schedule for February 2024 appello.

IMPORTANT: exams will be in our lab: GamificationLab, via dei Volsci 122.

IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.




Thursday, 25 January 2024

Exam schedule available for January’s appeal


The exam schedule for oral discussions is available here: Schedule for January 2024 appello.

IMPORTANT: exams will be in our lab: GamificationLab, via dei Volsci 122.

IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.




Friday 5 January 2024

Vue.js caveats


Some errors in the Vue code are somehow not shown when vite (the vue “compiler”) is used in development mode. Therefore, I suggest you to test your code with stricter settings using the following commands before committing the code to the repository:

./open-npm.sh
# (here you're inside the NPM container)
npm run build-prod
npm run preview

You may also want to open the Developer Toolbar during your tests to see the JavaScript errors and crashes and fix them before the delivery.

You can still use npm run dev when writing code. It has some valuable functions, like live reload, verbose errors, etc., that the production build doesn’t have.

(this notice was already present as FAQ #15, this is a reminder)




Wednesday 20 December 2023

Exams FAQ


We can not find the exam on Infostud to register for it. Is there another way to register?
I opened the appeals now; please try again.
We also want to know when exactly the oral exams will take place, because on 30.1 we have a different exam at 14:00.
The exams will take place the whole day. It is not possible for another exam to be scheduled on that day for the same program and the same year. In fact, they carefully avoided any overlaps, and official exam schedules were published. Should it be so, please contact the secretariat at segreteria.didattica@di.uniroma1.it
Is it possible to ensure that we can attend the oral exam on 30.1 before 14:00?
No. As I said, exams might continue till 7 pm, depending on the number of students




Tuesday 19 December 2023

End of the WASA course 2023/24


ANNOUNCEMENTS

  • Tomorrow, I will make the last hw evaluation of 2023. Evaluations will start again on Wednesday, 3 January, 2024.
  • Exams will be on:
    • Tuesday, 30 January
    • Tuesday, 20 February
  • Please book on Infostud today to avoid forgetting it.
  • The final evaluations will be on the Thursday before the appeals (i.e., 25 January and 15 February)
  • It was the last lesson today; no class on Thursday this week. Merry Christmas and Happy New Year to all of you.




Tuesday, 19 December 2023

Lesson: Containers


  • Containers introduction
  • Homework 4 is open: you must create two Dockerfiles: one named Dockerfile.frontend for the frontend part, one named Dockerfile.backend for the backend part.
  • On WASA book, chapter 7 you can find a detailed description about how to create the two Dockerfiles.




Thursday, 14 December 2022

Practice: Vue.js


  • Example implementation of Vue.js frontend for Hi-Lo Game We modified some files inside the service and webui folders of the hilo project (fantastic coffee decaffeinated structure).




Tuesday, 12 December 2023

Lesson: Vue.js


If you have errors running the frontend part on Apple M1 / ARM, please read the “Known issues” section in the Fantastic Coffee (decaffeinated) README for a fix.




Thursday, 7 December 2023

Today’s class canceled


We will not have class today. Next class on Tuesday December 12.




Tuesday, 5 December 2023

No class today


Today’s lesson is canceled.




Thursday, 30 November 2023

Lesson: Vue.js





Tuesday, 28 November 2023

Lesson: Javascript


Update 29 November Updated form link below, updated topics.

Announcement: ITMeeting

On Thursday, December 6th, 2023, from 9 a.m. to 4 p.m.

(Recommended for third year Bachelor’s or Master’s degree students)

The 50th ITMeeting, the six-monthly meeting between undergraduates and recent graduates of the Sapienza Computer Science Degree Courses and companies producing or large users of IT solutions will take place on Thursday, December 1st.

The meeting will be held from 9:00 to 16:00 in Viale Regina Elena 295

During the day it will be possible to hold 10-minute interviews with each company and to attend the presentations of their activities, job opportunities and offers for degree theses and internships.

A few days before the event, each student will be provided with a summary document of the day, also containing the times of the interviews with the individual companies.

Students can participate in the speed date upon registration on the form.




Thursday, 23 November 2023

Lesson: HTML and CSS


  • HTML
  • CSS
  • Exercise continued from last week: finish the endpoints of the hi-lo game web app.

Note on the login in the project In the WASAphotos project, we asked for a kind of login functionality and provided instructions on how to implement it. Despite its name, we intended it as a means for you to test your web application and to demonstrate it at the exam.
So it is not a proper login and has no security capabilities. It is more of a way to create users in your system and impersonate them to test that it works properly.
For example, after creating two users, Mario and Luigi, you can impersonate Mario and follow Luigi, then impersonate Luigi and check that Mario is one of his followers.
Please refrain from implementing an entire authentication system, using well-formed tokens, or designing different APIs than the one provided for this functionality!




Monday, 20 November 2023

No class tomorrow


The lesson of Tuesday, Nov 21, is canceled. The next lesson is on Thursday, November 23.




Thursday, 16 November 2023

Practice: Hilo Game backend


Homework2 is officially open to submissions




Tuesday, 14 November 2023

Lesson: Go project structure (best practices)





Thursday, 9 November 2023

Lesson: GO errors, interfaces, packages, concurrency


Suggested Go exercises: WASA book, chapter 5.6




Tuesday, 7 November 2023

Practice: GO





Thursday, 2 November 2023

Lesson: GO





Tuesday, 31 October 2023

WASAPhoto Project: specifications and Homework 1





Thursday, 26 October 2023

Practice: API


Exercise

Fontanella or Nasone

Define the API for the Fountains project (fountains are called Fontanelle or Nasoni in Rome). The Fountains project includes a mobile app that allows citizens and tourists to explore nearby drinking fountains.

In Rome, drinking water is available thanks to little public fountains, also known as “nasoni” (“large noses”, due to their nose-like shape). They were installed in the late 1800 by the local municipalities in the capital city and nearby areas. More than 2500 are still working. The “Fountains” project includes a mobile app that allows citizens and tourists to explore nearby drinking fountains (see their location and status). Also, they will be able to change the status or location of any fountains, add missing fountains in the app and remove those that are no more present. A fountain’s status is “good” when it is in working condition and “faulty” if it’s broken. The app will communicate with a central server via REST and JSON - no information is stored locally in the smartphone. No authentication is needed, nor is user identification.

WASA BOOK section 4.3.




Wednesday, 25 October 2023

ROOM CHANGE TOMORROW


Tomorrow’s class will be in Room 1L Via del Castro Laurenziano 7/a




Monday, 23 October 2023

ANNOUNCEMENTS


No lesson tomorrow

Call for applications for collaborazione studenti, deadline November 17th Bando 6/23 - collaborazione studenti - 20 borse di tutorato - a.a. 22/23




Thursday, 19 October 2023

Lesson: API


ANNOUNCEMENT: No lesson next Tuesday 24 October




Tuesday, 17 October 2023

Lesson: HTTP and JSON


ANNOUNCEMENT: ITMeeting collaboration
Grant to help in the organization of the events




Friday, 13 October 2023

Exam schedule available for October’s appeal (for students of the previous year, 2022/23)


The exam schedule for oral discussions is available here: Schedule for October 2023 appello.

IMPORTANT: exams will be in our lab: GamificationLab, via dei Volsci 122.

IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.




Thursday, 12 October 2023

Practice: Git


  • Useful Git alias: git lg:
$ git config --global alias.lg "log --graph --abbrev-commit \
  --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) \
  - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- \
  %an%C(reset)%C(bold yellow)%d%C(reset)' --all"




Tuesday, 10 October 2023

Lesson: Git





Friday, 6 October 2023

October extra-ordinary appeal

The appeal will be on Tuesday, Oct 17, in GamificationLab. Please book now on Infostud (by oct 11 evening). The last project evaluation for this appeal will be on Thursday Oct 12 morning. Please push your code by wednesday night. Appeal schedule will follow as usual.




Thursday, 5 October 2023

Lesson: Git





Tuesday, 3 October 2023

Lesson: Introduction, Web apps, and REST


This is the first lecture for the new academic year 2023/24. Welcome!

Topics today:





2022/23





Sunday, 10 September 2023

Exam schedule available for September’s appeal


The exam schedule for oral discussions is available here: Schedule for September 2023 appello.

IMPORTANT: exams will be in our lab: GamificationLab, via dei Volsci 122.

IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.




Thursday, 24 August 2023

Evaluations restarted


Today, I evaluated the homework. From now on, as usual, I will do evaluations every week and daily on the last week before each appeal.

Please BOOK YOUR SEPTEMBER EXAM if you haven’t done it yet! Deadline Sep 4. Exams on Sep 11..15.




Friday, 21 July 2023

Summer Information


1 September’s appeal will be in the week of September 11-15, typically on Tuesday, regardless of the date published on Infostud. Detailed schedule will be available on the week before, as usual.

2 Please book your September exam today! In fact, the deadline is on Sep 4 and you may miss it. You can always cancel your reservation, or I will not insert you in the schedule if your homeworks are insufficient.

3 Yesterday I made the last July evaluation. Homework evaluations are now suspended for the summer.




Friday, 30 June 2023

Exam schedule available for July appeal


The exam schedule for oral discussions is available here: Schedule for July 2023 appello.

IMPORTANT! Exams will be in GamificationLab: Via dei Volsci 122.

IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.




Thursday, 1 June 2023

Exam schedule available for June appeal


The exam schedule for oral discussions is available here: Schedule for June 2023 appello.

IMPORTANT! Room is changed: exams will be in our lab: GamificationLab, via dei Volsci 122.

IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.




Wednesday, 17 May 2023

June Appeal


The June appeal will be on

June 6 to June 9, 2023

The exam schedule for oral discussions will be available the previous Friday, as usual (June 2). Please remember to book on Infostud by May 31st. IMPORTANT! Exams will be in our lab: GamificationLab, via dei Volsci 122.

IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.




Friday, 10 February 2023

Exam schedule available for March appello


The exam schedule for oral discussions is available here: Schedule for March 2023 appello.

IMPORTANT! Room is changed: exams will be in our lab: GamificationLab, via dei Volsci 122.

IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.




Sunday, 5 March 2023

Extraordinary Appeal March/April


The extraordinary appeal will be on

Tuesday, March 28 at 9 AM and Wednesday, March 29 at 9 AM

The exam schedule for oral discussions will be available the previous Friday, as usual (March 24).

IMPORTANT! Exams will be in our lab: GamificationLab, via dei Volsci 122.

IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.




Friday, 10 February 2023

Exam schedule available for February session


The exam schedule for oral discussions is available here: Schedule for February 2023 appello.

IMPORTANT! Room is changed: exams will be in our lab: GamificationLab, via dei Volsci 122.

IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.




Friday, 20 January 2023

Exam schedule available for January session


The exam schedule for oral discussions is available here: Schedule for January 2023 appello.

IMPORTANT! Room is changed: exams will be in our lab: GamificationLab, via dei Volsci 122.

IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.




Wednesday, 4 January 2023

Clarification about grading the “last check” column.


We received several e-mails regarding a potential grading problem (missing commits, skipped students, etc.). The real issue was confusion about the meaning of the “last check” column due to incorrect labeling: the column was meant to be “the last time we checked the repository for new changes”. At the same time, we briefly published results gradually during the last weeks, which increased the chaos.

To avoid further confusion, we will publish all results at one time. Also, we changed the meaning of the “last check” column to the time when the result was published (we will change the label ASAP).

Note that we may still update individual grades (for example, if there was an error during our grading).




Friday, 30 December 2022

FAQ updated


FAQ page has been updated.




Thursday, 22 December 2022

Practice: Containers

IMPORTANT (homework 3): you need to fix the file webui/vite.config.js. The new content for this file is here.

IMPORTANT (homework 3): if you use “local storage”, be sure to empty it before using it.

  • Announcements:
    • Honors Program: please see my post on December 1st
    • Bachelor theses (tirocinio) in GamificationLab: mainly about AI+HCI. Technologies: frontend/app design&development, backend/go, API, … See Internships and theses.
    • OPIS reminder
    • Debriefing: ITMeeting
    • Debriefing: this course
    • Exams information: (moved to the Exam page)
  • Docker exercise: running and building containers.
  • Homework 4 instructions: you should create two Dockerfiles: one named Dockerfile.frontend for the frontend part, one named Dockerfile.backend for the backend part. Refer to the last lecture and to WASA Fountains for examples.




Friday, 16 December 2022

No lesson next Tuesday


ANNOUNCEMENT

Due to a departmental meeting, the lesson scheduled for next Tuesday, December 20th, is canceled. Our course’s next (and last) class will be next Thursday, December 22th. EP




Thursday, 15 December 2022

Lesson: Containers





Tuesday, 13 December 2022

Practice: Vue.js





Tuesday, 06 December 2022

Lesson: Vue.js (continued)


If you have errors running the frontend part on Apple M1 / ARM, please read the “Known issues” section in the Fantastic Coffee (decaffeinated) README for a fix.




Thursday, 1 December 2022

Call for applications for the Honors Program


ANNOUNCEMENT

Students with an average grade of 27/30 can apply for the Honors Program call, which has 8 places reserved for ACSAI students this year. In the list of topics that they just published today, you can find the topics I offer (to be developed in my GamificationLab):

  • Applicazione del machine learning alle interfacce utente per applicazioni mobili sui trasporti intelligenti
  • Car Usage and Parking Prediction for Context-Aware Interaction
  • Earthquake detection at the edge: IoT crowdsensing network
  • Implementation of the SeismoCloud2.0 Earthquake Early Warning network
  • Automatic extraction of parking availability using deep learning

The Honors Program is a beautiful experience where the student can work on challenging research problems in a real setting and in a team with Ph.D. students and master thesis students. Not only is it a very formative opportunity, but it also grants a reward of the same amount of one-year University taxes.

Please read the descriptive pages and the information to apply and submit your application by January 20, 2023.




Tuesday, 29 November 2022

Lesson: Vue.js


ANNOUNCEMENT: From next Tuesday on, our Tuesday lesson will be at 2 pm. So WASA will be 2 pm - 4 pm, while Deep Learning will start (online) at 5.30 pm

Friday, 25 November 2022

WASA Fountains backend source code published


The backend for the project “WASA Fountains” has been published on GitLab and GitHub:

Update 2022-11-27: there was a bug in the published source code, now fixed. Follow the discussion at this link for the description of the bug and the fix: https://github.com/sapienzaapps/wasa-fountains/issues/1.




Thursday, 24 November 2022

Lesson: Javascript


Announcement: ITMeeting

On Thursday, December 1st, 2022, from 9 a.m. to 4 p.m.

(Recommended for third year Bachelor’s or Master’s degree students)

The 48th ITMeeting, the six-monthly meeting between undergraduates and recent graduates of the Sapienza Computer Science Degree Courses and companies producing or large users of IT solutions will take place on Thursday, December 1st.

The meeting will be held from 9:00 to 16:00 in Viale Regina Elena 295, Building E

During the day it will be possible to hold 10-minute interviews with each company and to attend the presentations of their activities, job opportunities and offers for degree theses and internships.

A few days before the event, each student will be provided with a summary document of the day, also containing the times of the interviews with the individual companies.

50 students can participate in the speed date, upon registration on the form.

Once registered, in the event of setbacks/illnesses etc, which prevent participation, please notify us promptly to the address commissione-aziende@di.uniroma1.it in order to allow us to update the shift calendar by inserting any students who they found no place in the initial 50. Register here: form


Tuesday, 22 November 2022

Practice: Fountains (continued)


  • Discussion about the first homework and common mistakes
  • Exercise on Fountains webapp:
    • Server side implementation in Go




Friday, 18 November 2022

WASA Homework results available


The first set of homework results is available at this link: https://wasa-enroll.sapienzaapps.it/. If you have any questions about grades, please get in touch with us at the end of the lectures. We will spend some time talking about some common mistakes during the next lesson.

Update 2022-11-19: we discovered that some evaluation were too strict. In particular, there is no need to define the response content if the HTTP status code is not 2xx, also there is no need to specify examples for request/response bodies if you specify the example in schema objects. Grades have been updated accordingly.




Thursday, 17 November 2022

Lesson: HTML and CSS


Blackboard
  • HTML
  • CSS
  • discussion on API in view of the first homework submission

Note on the login in the project In the WASAphotos project, we asked for a kind of login functionality and provided instructions on how to implement it. Despite its name, we intended it as a means for you to test your web application and to demonstrate it at the exam.
So it is not a proper login and has no security capabilities. It is more of a way to create users in your system and impersonate them to test that it works properly.
For example, after creating two users, Mario and Luigi, you can impersonate Mario and follow Luigi, then impersonate Luigi and check that Mario is one of his followers.
Please refrain from implementing an entire authentication system, using well-formed tokens, or designing different APIs than the one provided for this functionality!




Wednesday, 16 November 2022

WASA Homework delivery


The “Homeworks delivery” page has been updated, and the delivery is now possible.

Unfortunately we are late due to a limitation of GitLab/GitHub. However, given that the solution required a new web application, we have implemented and published the code using the “Fantastic Coffee (decaffeinated)” template:

Project specifications have been updated to version 3: Project specifications




Tuesday, 15 November 2022

Practice: Fountains (continued)


  • Exercise on Fountains webapp:
    • Server side implementation in Go




Sunday, 13 November 2022

WASA 2022/2023 course survey





Thursday, 10 November 2022

Practice: Fountains


  • Q&A about Fantastic-Coffee and the general overview of the client/API/server architecture
  • Exercise on Fountains webapp:
    • API discussion
    • Server side implementation in Go




Wednesday, 9 November 2022

FAQ updated


FAQ page has been updated.




Tuesday, 8 November 2022

Lesson: Go project structure (best practices)





Thursday, 3 November 2022

Lesson: GO errors, interfaces, packages, concurrency





Thursday, 3 November 2022

WASA Project (2022-2023): Homework 1 + specifications





Thursday, 27 October 2022

Practice: GO





Tuesday, 25 October 2022

Lesson: GO





Thursday, 20 October 2022

Practice: API


ANNOUNCEMENT: Lunch Seminar next Monday, 24 Oct, in room 1L at 1 pm
Please see http://www.itmeeting.it

Exercise

Fontanella or Nasone

Define the API for the Fountains project (fountains are called Fontanelle or Nasoni in Rome). The Fountains project includes a mobile app that allows citizens and tourists to explore nearby drinking fountains.

In Rome, drinking water is available thanks to little public fountains, also known as “nasoni” (“large noses”, due to their nose-like shape). They were installed in the late 1800 by the local municipalities in the capital city and nearby areas. More than 2500 are still working. The “Fountains” project includes a mobile app that allows citizens and tourists to explore nearby drinking fountains (see their location and status). Also, they will be able to change the status or location of any fountains, add missing fountains in the app and remove those that are no more present. A fountain’s status is “good” when it is in working condition and “faulty” if it’s broken. The app will communicate with a central server via REST and JSON - no information is stored locally in the smartphone. No authentication is needed, nor is user identification.




Thursday, 13 October 2022

Lesson: API (continued)


ANNOUNCEMENT: No lesson next Tuesday 18 October




Tuesday, 11 October 2022

Lesson: API





Thursday, 6 October 2022

Lesson: HTTP and JSON


ANNOUNCEMENT: Lunch Seminar October 24, 1 p.m., Room 1L Castro Laurenziano
Storm Reply: “A Serverless Journey”
Topics: Introduction to Storm, Serverless paradigm, Serverless use-case
ANNOUNCEMENT: ITMeeting collaboration
Grant to help in the events organization




Tuesday, 4 October 2022

Practice: Git


  • Useful Git alias: git lg:
$ git config --global alias.lg "log --graph --abbrev-commit \
  --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) \
  - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- \
  %an%C(reset)%C(bold yellow)%d%C(reset)' --all"




Thursday, 29 September 2022

Lesson: Git





Tuesday, 27 September 2022

Lesson: Introduction, Web apps, and REST





27 September 2022

Students with disabilities and SLD

Students with disabilities and SLD who have not yet done so should contact the offices or directly the SLD faculty representative Prof. Tiziana Calamoneri to submit their certifications as soon as possible.

Submitting certifications now is very important to avoid finding yourself unable to request dispensatory measures and compensatory tools at the first exam session.




26 September 2022

Covid tracking


As indicated by the COVID-19 risk prevention and management policies, the need to track students’ attendance in the classroom remains in force. For that purpose, the programs in Informatica, Applied Computer Science and Artificial Intelligence, and Computer Science have prepared a google form that students can fill in at any time (even during the lesson or post-lesson). Attendance tracking is done to safeguard the student’s health. We, therefore, recommend you fill out this form for each class you attend.

FORM TO REPORT THE CLASSROOM ATTENDANCE for INFORMATICA https://forms.gle/HUmkR14znPhZQ46Q9

FORM TO REPORT THE CLASSROOM ATTENDANCE for ACSAI https://forms.gle/TZYecGadZ6CDFhQj7

FORM TO REPORT THE CLASSROOM ATTENDANCE for COMPUTER SCIENCE https://forms.gle/oh7oegAWFeSBMWUt5




23 September 2022

Course will start next Tuesday


The Web and Software Architecture course will start next Tuesday, 27 September, at 4 pm, in Room 2L, Via del Castro Laurenziano, 7/A.

Academic Year 2022/2023. The first year of this course.




22 September 2022

About this file


The Stream (http://gamificationlab.uniroma1.it/wasa/stream) is where we will add a post for each lesson, plus announcement posts.

The Stream is in reverse chronological order.

Each lesson post will contain the topics, the links to the presentation (pdf), the lesson recording, and any helpful references not already listed in the slides.

I will also post announcements about the course, the exams, and related information.




Teaching Material

E-Book