CountRie is a web application featuring a range of countries, characters, and their respective dependencies. Users can view and interact with data using a clean interface, create their own countries and characters, and engage in battles.
Access CountRie Website: https://countrie-fsohpe7vuq-lm.a.run.app
- Overview
- Features
- Architecture
- Technologies
- Installation and Setup
- CI / CD
- Database Schema
- Screenshots
- Contributing
- License
- Contact
CountRie allows users to:
- Create an account and log in
- View and interact with countries and characters
- Create, edit, and delete their own countries and characters
- Engage in battles between characters, improving their power
- View battle history and character details
Admin accounts have full control over all data. The admin account has an email of [email protected].
- State-of-the-art authentication system
- Role-based access to resources
- Ownership of countries/characters
- CRUD operations for all models
- Innovative battle system with name generator
- Robust validation system for user experience and security
- Clean architecture with CQRS pattern
- Onion architecture for separation of concerns
- Dependency Inversion for decoupling and easy extension
- Adherence to DRY, KISS, and SOLID principles
- ASP.NET Core MVC
- Entity Framework Core
- Identity for authentication and authorization
- PostgreSQL
- Docker
- Aiven for database hosting
- Google Cloud Platform
- Bootstrap for responsive design
- Google/Facebook login integration
Dotnet 8 SDK and runtime is needed to run the app locally, which can be downloaded at: https://dotnet.microsoft.com/en-us/download/dotnet/8.0
- Clone the repository:
git clone https://github.com/yourusername/CountRie.git
- Navigate to the project directory:
cd CountRie
- Install dependencies:
dotnet restore
- Set up your database connection string in
appsettings.json
- Install dotnet tools:
dotnet tool install --global dotnet-ef
- Run database migrations:
dotnet ef database update --project ./Data --startup-project ./Web
- Start the application:
dotnet run
The project uses separate workflows for Continuous Integration (CI) and Continuous Deployment (CD):
- CI: Automatically builds and tests the project on each push or pull request.
- CD: Automatically builds the project into a Docker container, uploads it to the cloud, and deploys it to run.
This setup provides a seamless development experience and ease of use.
We welcome contributions to CountRie! Please follow these steps:
- Fork the repository
- Create a new branch for your feature
- Commit your changes
- Push to your branch
- Create a new Pull Request
This project is licensed under the MIT License - see the LICENSE.md file for details.
For any questions or feedback, please open an issue on GitHub or contact the maintainer at [email protected].