Skip to content

BORGA provides access, through a web interface, to some of the features provided by the Board Game Atlas website, making use of its Web API for this purpose.

Notifications You must be signed in to change notification settings

bodybuilders-team/borga

Repository files navigation

BORGA - BOaRd Games Application

BORGA provides access, through a web interface, to some of the features provided by the Board Game Atlas website, making use of its Web API for this purpose.

The link for the deployed application is here.

Popular Games Gif


Description

BORGA allows the user to perform the following operations:

  • Search board games by name
  • See details of a specific game
  • Gets the 20 most popular board games
  • Create and manage groups of games (requires login)

These operations can be performed via Web-UI (Website) or Web-API.


Project Structure

The application modules dependencies are the following:

Borga-Modules

Modules description:

  • borga-launch.js - launches the server application

  • borga-config.js - contains the application configurations, such as database and guest user information

  • borga-server.js - entry point to the server application

  • borga-web-site.js - implementation of the web site

  • borga-web-api.js - implementation of the HTTP routes that make up the REST API of the web application

  • borga-services.js - implementation of the logic of each of the application's functionalities

  • board-games-data.js - access to the Board Games Atlas API

  • borga-data-mem.js - access to borga data (games, groups and users), stored in memory

  • borga-data-db.js - access to borga data (games, groups and users), stored in an ElasticSearch database

  • borga-errors.js - contains the applications errors list

The borga-data-mem.js and borga-data-db.js modules are at the same level and have similar implementations, so the server can choose which of the two the borga-services.js module uses.


Operations

Search Games

The user can search games by name, and manipulate the expected result by adding a limit of games to be searched and/or ordering the by name, rank or price. This operations does not require login.

Search Games Gif

Popular Games

The user also can see the current twenty most popular games from Board Game ATLAS. This operations does not require login.

Popular Games Gif

Game Details

In all game operations it's possible to see the game details by pressing the "Details" button.

Game Details Gif

Register & Login

To create and manage groups, it's required to be logged in. The user can register or do login in the following page:

Borga-Register-Login

Groups Creation & Manipulation

If the user is logged in, he can create, edit and delete personal groups of board games.

A group consists of a name, a description and a list of games.

Create Group

The user can create a group by passing a name and a description. Multiple groups can have the same name.

Create Group Gif

Edit Group

The user can edit a group by passing a new name and a new description.

Edit Group Gif

Delete Group

The user can delete a group, but once it's deleted there's no going back.

Delete Group Gif

Add Games to Group

The user can add multiple games to a group.

Add Game to Group Gif

Remove Games from Group

The user can remove a game from a group. A group can be empty.

Remove Game from Group Gif


API Documentation

The Web API has the following paths/operations:

  • GET /games/popular - Gets the list of the most popular games.
  • GET /games/search - Searches games by name.
  • GET /games/{gameId} - Gets the game details.
  • POST /user - Creates a new user.
  • POST /user/{userId}/groups - Creates a group providing its name and description.
  • GET /user/{userId}/groups - Lists all groups.
  • POST /user/{userId}/groups/{groupId} - Edits a group by changing its name and description.
  • DELETE /user/{userId}/groups/{groupId} - Deletes a group.
  • GET /user/{userId}/groups/{groupId} - Gets the details of a group.
  • POST /user/{userId}/groups/{groupId}/games - Adds a game to a group.
  • DELETE /user/{userId}/groups/{groupId}/games/{gameId} - Removes a game from a group.

Authors

Professor: Eng. João Trindade

ISEL
Bachelor in Computer Science and Computer Engineering
Introduction to Web Programming - LEIC32D - Group 03
Winter Semester of 2021/2022

About

BORGA provides access, through a web interface, to some of the features provided by the Board Game Atlas website, making use of its Web API for this purpose.

Topics

Resources

Stars

Watchers

Forks