-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #31 from EpicOfficer/ENHANCEMENT/Actions
Update Docker workflow and expand README content
- Loading branch information
Showing
3 changed files
with
47 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,44 @@ | ||
# Blink | ||
# Blink3 | ||
[![Build](https://github.com/EpicOfficer/Blink3/actions/workflows/build.yml/badge.svg)](https://github.com/EpicOfficer/Blink3/actions/workflows/build.yml) | ||
[![Publish Docker Images](https://github.com/EpicOfficer/Blink3/actions/workflows/docker-image.yml/badge.svg)](https://github.com/EpicOfficer/Blink3/actions/workflows/docker-image.yml) | ||
|
||
Blink3 is a .NET 8 project implemented with a multilayered architecture. This repository holds a Discord Bot solution that comes with an API, a Blazor front-end, and Discord Activity support. Multiple features, like a global to-do list and customizable wordle, are provided as well. | ||
|
||
## Project Structure | ||
The application is structured into multiple layers as follows: | ||
1. `Blink3.API`: A .NET 8 REST API that contains endpoints for the `Blink3.Web` and `Blink3.Activity` presentation layers, and includes a Discord OAuth implementation. | ||
2. `Blink3.Web`: A Blazor WASM front-end that supports login through the API utilizing Discord OAuth, and allows users to manage the bot. | ||
3. `Blink3.Activity`: A Work-in-Progress presentation layer which will integrate with Discord Activity. | ||
4. `Blink3.Bot`: The main presentation layer, developed in .Net 8 using Discord.Net, responsible for running the discord bot. | ||
5. `Blink3.DataAccess`: A layer consisting of data access repositories and an EF Core code-first DbContext. | ||
6. `Blink3.Core`: A shared library that contains common business logic interfaces, enums, and models. | ||
|
||
## Features | ||
Currently, the bot provides several commands, including: | ||
- `/temp`: Base command to create and manage temporary Voice Channels. | ||
- `/define`: Get the definition of an English word. | ||
- `/wordle`: Start a new wordle game in the current channel. | ||
- `/guess`: Attempt to guess the wordle. | ||
- `/leaderboard`: Displays a global wordle points leaderboard. | ||
- `/todo`: Base command for managing your to-do list. | ||
- `/config`: Allows guild admins to change bot settings for their guild. | ||
|
||
## Build & Run | ||
Blink3 includes multiple Docker images for each of the solution's parts and Docker Compose files for orchestration. The Docker Compose files included are: | ||
- `docker-compose.yml` - The base Docker Compose file. | ||
- `docker-compose.development.yml` - Overwrites the base configuration for local development. References the images built in the local solution. | ||
- `docker-compose.production.yml` - Overwrites the base configuration for production environments. References the images hosted on GitHub Container Registry. | ||
|
||
To build and run the application using Docker Compose, you can execute the following commands: | ||
|
||
For local development: | ||
|
||
docker-compose -f docker-compose.yml -f docker-compose.development.yml up --build | ||
|
||
For production: | ||
|
||
docker-compose -f docker-compose.yml -f docker-compose.production.yml up --build | ||
|
||
An `.env.example` file has been included in the repository. Rename or copy this file to `.env` and replace the sample values with your actual environment values to set up your environment. | ||
|
||
Please note that the development Compose file references the Docker build images in the solution, while the production one uses the images from the GitHub Container Registry. |