Skip to content

A mobile companion app designed to help players organize and participate in events for the game Helldivers 2.

Notifications You must be signed in to change notification settings

Spacelocust/for-democracy

Repository files navigation

For Democracy

A mobile app designed to help players organize and participate in events for the game Helldivers 2.

This is our last project for our 5th year at ESGI (second semester).

Content

Features

  • A mobile app to display the different planets, events and groups
  • An API to process the official Helldivers data and expose it
  • A web administration panel to manage available features in the mobile app

Mobile

The main visual part of the project. It is used by players to organize and participate in events.

Download the app (Android only).

Mobile features

  • Made with Flutter
  • Fully translated in English and French
  • Fully themed with Helldivers colors and fonts
  • Easy to use and fast
  • Custom galaxy map from the game
  • List of events in real-time
  • Steam OAuth
  • Create and join groups
  • Create private groups and use a code to invite friends
  • Plan missions with objectives in your group
  • Join your friends' missions and choose your stratagems
  • Notifications in real-time with Firebase
  • And more !

Screenshots

View of the galaxy map View of a planet View of the planet list View of the event list View of the group list View of a group View of a mission View of the Steam OAuth button View of the group dial View of a group creation View of a stratagem's details View of a new mission View of the join mission dialog

Note

Also see the Mobile README for more information.

API

A RESTful API to process the official Helldivers data and expose it through endpoints. See the Swagger documentation.

API features

  • Made with Go and Gin
  • Steam OAuth
  • Gathering of Helldivers 2 game data from various sources
  • Processing of gathered data (stats, events, etc.)
  • Real-time events update with SSE
  • Swagger documentation
  • Migration system with Atlas
  • Docker configuration for development and production
  • Firebase client for notifications
  • Stateless API with JWT authentication
  • Cron jobs to process data

Note

Also see the API README for more information.

Web

A web administration panel to manage the available features in the mobile app.

Web features

  • Made with Flutter
  • Login with password
  • Enable or disable features for the mobile app

Note

Also see the Web README for more information.

Prerequisites

Installation

Note

The Docker containers are used to run the API and the database. You will have to run the flutter mobile and wep app separately on your local machine.

  1. Clone the repository
  2. (Optional) Add compose.override.yml to override the default compose configuration
  3. Create a .env.local file and fill in the necessary values depending on the .env file
  4. Run make start
  5. Run make db-migrate to load the database migrations
  6. Run make collector to load the data from helldivers API
  7. Go to http://localhost:5000 to access Golang API

After the first run, you can use make stop & make up to quickly stop and start the containers. All the available commands are listed in the Makefile, you can use make or make help to list them all. Read the commands section for more information.

if you want to reset the database, you can use make db-reset it will remove the database and create a new one and load migrations, and re-run make collector to load the data from helldivers API.

You can also run a cron job to load the events from the helldivers API every minute by running make cron, be sure to have run make collector before running the cron job.

Note

You can run the make events command manually to generate statistics for the different ongoing events. However, this command is intended to run in a cron job and at least every minute to get accurate data.

Services

All the services used by the project.

Note

Some services are only available in dev. They will never be used in production or even test environments.

Service name Host Aliases Ports Description
api localhost:5000 fd-api The Golang API
postgres fd-postgres The database used by the API.
adminer localhost:8080 fd-adminer Used to manage PostgreSQL easily. Only available in dev.

Authentication

We use simple username/password for development purposes.

Service Host database Username Password
adminer postgres app root root

Commands

Note

All the commands are available in the Makefile. You can use make or make help to list all the available commands. If you want to add a new command, please add it to the Makefile and document it here.

Swagger

The API is documented using Swagger. You can access the documentation by going to http://localhost:5000/swagger/index.html.

About

A mobile companion app designed to help players organize and participate in events for the game Helldivers 2.

Topics

Resources

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •