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).
- 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
The main visual part of the project. It is used by players to organize and participate in events.
Download the app (Android only).
- 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 !
Note
Also see the Mobile README for more information.
A RESTful API to process the official Helldivers data and expose it through endpoints. See the Swagger documentation.
- 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.
A web administration panel to manage the available features in the mobile app.
- Made with Flutter
- Login with password
- Enable or disable features for the mobile app
Note
Also see the Web README for more information.
- Flutter
- Android Studio or Android SDK
- Docker
- Docker Compose
- GNU Make
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.
- Clone the repository
- (Optional) Add
compose.override.yml
to override the default compose configuration - Create a
.env.local
file and fill in the necessary values depending on the.env
file - Run
make start
- Run
make db-migrate
to load the database migrations - Run
make collector
to load the data from helldivers API - 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.
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. |
We use simple username/password for development purposes.
Service | Host | database | Username | Password |
---|---|---|---|---|
adminer |
postgres |
app |
root |
root |
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.
The API is documented using Swagger. You can access the documentation by going to http://localhost:5000/swagger/index.html.