Skip to content

SPQE21-22/BSPQ22-E1

Repository files navigation

BSPQ22-E1

GitHubActions

A project from Deusto Computer Engineering, Software Process and Quality.

Authors:

Purpose:

The main objetive of our application is to manage a library.

Users will be able to pick a book, book a room, buy and eat in the cafeteria and see his/her profile information.

Administrators will be able to add new books, fine users and manage cafeteria supplies and menus.

Working Process (Youtrack):

We worked using SCRUM, an agile methodology where we defined user stories (needs) and we gave them a priority and an estimation time. We divided the project in three different sprints as shown below.

Sprint 1 (March 20 - April 4)

Tasks:

  • Setup Maven Environment.
  • Server Side Architecture.
  • Basic GUI.
  • DB Connection.
  • Book Management.
  • Picking up a book.
  • Creating an account.
  • Show book availability.

Estimation:

image

Burndown Chart:

image

Conclusions:

We started with some configuration problems in diffent OS but we managed to figure it out. We divided the work in a balanced way but we were in a hurry at the final days. We underestimated the time it would cost us starting with the project.

Sprint 2 (April 5 - May 2)

Tasks:

  • Server Refination and depuration.
  • Updating DB.
  • Unit tests.
  • Performance tests.
  • Book a room.
  • Reserve a book.
  • Study room assignment.
  • Deleting account.
  • Show room availability.

Estimation:

image

Burndown Chart:

image

Conclusions:

This time we were working since the first days but, we left all the task in "to verify" and the burndown does not update until we moved the task to finish. Most of these tasks refer to tests so they were moved to finish when all the implementation was done. We learned that smaller tasks would give us a better approach of the work. We had some issues because real time was not updating for some of us.

Sprint 3 (May 3 - May 19)

Tasks:

  • Internationalization.
  • JavaDocs Documentation.
  • Doxygen Implementation.
  • GitHub Pages.
  • GitHub Actions.
  • New Server Unit Tests.
  • New DB Unit Tests.
  • Managing cafeteria supplies.
  • Managing study rooms.
  • Online order management.
  • Checking online menu.
  • Keeping DB inventory updated.
  • Access to user history.

Estimation:

image

Burndown Chart:

image

Conclusions:

This time, as learned from previous sprints, we divided the work in more tasks so we could end them faster. We worked together to create new functionalities in the server and improved some GUIs. We also created tests for these new functionalities. Finally we documentated all the code and created this beautiful Readme.

Technologies:

  • Project developed using Java Maven.
  • MySQL as the DB.
  • JUnit, Contiperf and VisualVM for tests.
  • Javadocs, Doxygen and GitHub Pages for documentation.
  • GitHub and Youtrack as VCS (Version Control Systems).

How To Run:

First, compile the whole code:

  1. mvn compile

Then, in three separate cmd windows, run:

  1. mvn jetty:run
  2. mvn exec:java -Pmanager
  3. mvn exec:java -Pclient

GUI:

A glance at some of our windows.

Login Window: Register Window:
image image

Main Window:

image

User Information:

image

Admin Cafeteria Window:

image

Final conclusions:

Overall we worked great as a team, we found the strengths of each one and helped each other when needed. A project like this has given us a view of how software development works in real life. We used a lot of interesting developing tools that will be very useful in our career.