- Leire Insausti González
- Oihan Irastorza Carrasco
- Eneko Pizarro Liberal
- Aritz Plazaola Cortabarria
- Pablo Tagarro Melón
- In order to fetch football matches, you have to register in an external Rest API like this one, and use the token provided by the API. Then, add your token to a new TOKEN environment variable.
- Copy the config file located in the root of the repository to your user.home directory. Otherwise you may have problems connecting to the database and fetching some avatar images.
- Set environment variables for the email (EMAIL) and password (PASS_EMAIL) used by the MailSender class. If you are using Gmail, remember to activate the "Access to less secure applications" option, otherwise the MailSender class will not be able to send emails.
You can download the latest version here.
The initial scenario proposed to us is a menu where any user can both create questions and query them.
At this starting point, there is still no distinction between users, there are no use cases defined beyond CreateQuestion and BrowseQuestions. The application is composed by 3 different interfaces, MainMenuGUI, CreateQuestionGUI and BrowseQuesionsGUI.For this first iteration, we are asked to define the requirements of the application, based on 4 initial use cases:
For each of these use cases, we have to:
- Create the use case diagram, including flow of events
- Update the domain model
- Draw the mockup GUI
- Implement the use case
List of tasks carried out during iteration:
Compulsory
- Created the use case diagram and flow of events, including the four use cases aforementioned.
- Updated the domain model with the necessary objects to manage users (User object) and forecasts (Forecast object). See User and Forecast.
- Designed the mockups for the entire first iteration.
- Implementation of the four use cases in form of GUIs, data accesses to the database and business logic intermediary methods. See:
Optional/Extras
- Project converted to Maven project.
- Moved project to the repository root.
- Design of our custom logo and favicon. See logo and favicon.
- Added a welcome GUI. When the application is launched, this is the first window to be displayed. From here, the user can either login, register or directly browse questions.
- Added navigation menu. This includes:
- Security enhancement. This includes
- String input validation. Use of regex and value formatters to force user to introduce valid data.
- Hashed password. Passwords are stored using SHA-512 hashing algorithm + salt.
- Responsive design.
With the proposed migration to JavaFX, we have invested much of the time spent on the project in redesign each and every one of the old interfaces using JavaFX instad of Swing.
The end user can now enjoy a UI decorated with a selective color palette and a wide range of new components that facilitate and improve navigation, as well as a set of new utilities and use cases for an optimal application experience.
List of tasks carried out during iteration:
Compulsory
- General:
- Update of the domain model and use case diagram.
- Redesigns:
- Welcome page
- Login
- Register
- User menu
- Admin menu
- Browse events (old Browse questions)
- Create event
- Create question
- Create forecast
- Use cases:
- Sequence diagrams:
Optional/Extras
- Custom navigation bar. We have removed the default top bar and designed a bar with a more modern look and more utilities, such has two-way navigation and dynamic language changer. Also, the new bar has a nested sub-bar that will show the buttons to login and register if the user is not logged in, and user's avatar1 as well and a dropdown menu with several utilities if the user is authenticated.
- Earth globe event searcher. Although it is part of Browse Events GUI redesign, we believe that the new function to search for events is remarkable. The user can now select events by country by clicking on the earth globe on the left side of the interface. Similarly, if the user selects an event from the events table, the ball will automatically rotate to the country where the event takes place.
- Linking fonts from Google Fonts. In our case, we are using Roboto.
- Integration of libraries:
- FontAwesome. An icon library widely used by developers.
- JFoenix. JavaFX material design library.
- String input input validation in the new interfaces, now also with the use of observators.
For this latest iteration, we have tried to improve the user and administrator experience as much as possible.
To do this, we have separated the application in terms of a gambler, an administrator and a common area for both of them and anonymous users, the portal for betting and viewing events.
List of tasks carried out during iteration:
Compulsory
- Class diagram
- Sequence diagram for Publish Results use case
- Use cases:
- Updated domain model and event flows
Optional/Extras
- Use cases (admin)
The administrator can now manage events, quotas and forecasts in a much simpler way. The interfaces are interconnected, so that the administrator can access the queries associated with an event with a single click, just as he can access the forecasts associated with a question with another click. We have aimed to create a simple, but very powerful and intuitive interface, so that the administrator can perform his tasks efficiently. In addition, we offer the administrator an overview of the application, which can let him know at a glance the balance of the last month, the upcoming events...
-
Use cases (user)
- Consult user overview
- Consult profile
- Edit profile
- Change avatar
- Change password (by email)
- Delete account
- Withdraw money
The user now enjoys a pleasant and easy-to-use interface, with a wide range of components and animations that will enhance the experience significantly. The overview offered by the main panel of the allows the user to know his/her track record in the application, the bets placed, the money won and even the fluctuations of his/her wallet over the last month.
-
Redesign and UI creation
- Admin dashboard. Includes all the aforementioned use cases.
- User dashboard. Includes all the aforementioned use cases.
- Plenty of new custom componentes, such as transaction panels, deposit/withdraw money widget, 3d flipping credit card, animated dialogs...
-
Email
- Email code sender for password change authorization. If the user wants to change his/her password, he/she will receive a 5-digit code in his/her personal e-mail that must be entered in the application to authorize the operation. As an extra, the email is customized with some HTML and CSs, and since it is multipart, the end user can download our logo.
-
Installers
Footnotes
-
Users cannot upload avatar's yet, but the platform is already prepared for that situation. ↩