Important
This project uses docker images from aledefreitas/php-nginx-docker-dev! Those were originated from this repository, and "refactored" into its own repository for better maintainability.
An (purposefully) over-engineered piece of code intended for applying technologies and patterns in order add to my tech stack skill set while attempting to solve problems I came across in my hobby!
Since I've been playing World of Warcraft as a hobby for quite some time (more than I'm willing to admit ๐) and I'm a guild - and raid - leader, I have the constant need to recruit new players to fill in our team's roster. While there are countless tools to manage guild rosters, I decided it would be a great project to develop as a way to train my skills and explore technologies I would not be able to use in any of the projects I'm currently working on, while applying those to a real world problem.
By creating this project and tackling the problems I face in my hobby and recreating some of the existing solutions adding my personal touch, I hope to both experiment with technologies I've already used, been wanting to use, or have only heard of AND showcase my expertise (or lack thereof ๐) in Web Development, System Design and problem solving.
Note
This project is focused in being a way to keep myself up-to-date to the state of PHP Web Development and Best Practices in 2024 while also exploring some new exciting technologies :)
There are already solutions for this problem out there, and given the scale and scope of the market for those solutions it might not necessarily need the over-engineering (hopefully) applied to this project. The purpose of this project is NOT
to Keep It Simple, but rather apply technologies to study them and feel comfortable using them on professional projects.
- WoW Recruitment BackEnd
- Summary
- Project Main Goals
- Tech Stack Wishlist
- Requirements
- Installation
- Documentation
- Running Tests
Warning
This might never - and probably will never - actually be deployed into production
It SHOULD
accomplish the following:
- Showcase SOME of what I can offer as a developer ๐
- Replicate and extend on current solutions for the same problem
- Follow SOLID Principles
- Follow PHP Best Practices
- Follow Symfony's Best Practices
- Integrate Battle.net REST API
- Be easy to deploy a dev environment
- Have tests in its CI Pipeline
Caution
These are subject to change throughout the development of this project
- Domain Driven Design
- Hexagonal Architecture
- CQRS
- PHP CS Fixer
- PHPStan
-
PHP Mess Detector- Decided to use psalm instead.
-
psalm- Had to be removed, current version is not compatible with Symfony Testing 7.1 dependencies. Should implement this in CI later or when its version is compatible with Symfony 7.1.
- commitlint
- deptrac
- Gitflow
- Kibana
- Mongo Express
- Taskfile
- Docker installed with Compose V2
Simply run the following command in your terminal
$ task up-dev
$ task up-staging
$ task up-prod
You can see the documentation here!
Please, bear in mind that this will evolve alongside the project, so it might be pretty incomplete by the time you see it ๐ฆ
$ task ci:test-unit
$ task ci:test-integration
$ task ci:test