Skip to content

A betting application developed for the Software Engineering (SE) course.

License

Notifications You must be signed in to change notification settings

Botxan/BetAndRuin

Repository files navigation

BetAndRuin - 2022

BetAndRuin is a betting application developed for the Software Engineering (SE) course.


Authors

Josefinators


Instalation

Prerequisites

  • 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.


Project development

0th Iteration. Project setup

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.

1st Iteration. Authentication and initial use cases

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

Optional/Extras


2nd Iteration. Migration to JavaFX and more use cases

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

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.

3rd Iteration. Advanced design, dashboards and Rest API

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

Optional/Extras

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)

    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

    • Builds. We have generated installers for Windows, MacOS and Linux with the help of GitHub Actions. You can find them here.

Footnotes

  1. Users cannot upload avatar's yet, but the platform is already prepared for that situation.