Implementation
General
- Routing: https://laravel.com/docs/10.x/routing
- Controller: https://laravel.com/docs/10.x/controllers
- Authentication: https://laravel.com/docs/10.x/sanctum
- ORM: https://laravel.com/docs/10.x/eloquent
Best practices
Performance
- https://kinsta.com/blog/laravel-performance/
- https://newrelic.com/blog/best-practices/improve-laravel-performance
- https://www.cloudways.com/blog/laravel-performance-optimization/
- https://serversforhackers.com/laravel-perf/eager-loading
Next steps
- implement Elo calculation
-
implement
review
system andada
funtionality -
create
drafts
table and implementdraft
functionality -
implement API Endpoints for
Players
,Teams
,Sets
,Tournaments
,Search
, andLeaderboads
- check https://github.com/nette/utils for functionality
Elo
- implement Elo calculation algorithm
- implement Elo caching mechanism
Authentication
- Discord: https://socialiteproviders.com/Discord/
- Config Setup
- Acquire Client ID and Secret
- Add Redirect URL
-
return Socialite::driver('discord')->redirect();
- Steam: https://socialiteproviders.com/Steam/
- Config Setup
- Acquire Client ID and Secret
- Add Redirect URL
-
return Socialite::driver('discord')->redirect();
- Twitch: https://socialiteproviders.com/Twitch/
- Config Setup
- Acquire Client ID and Secret
- Add Redirect URL
-
return Socialite::driver('discord')->redirect();
- Github: https://socialiteproviders.com/Github/ (Socialite Base)
- Config Setup
- Acquire Client ID and Secret
- Add Redirect URL
-
return Socialite::driver('discord')->redirect();
- possible others
- Google: https://socialiteproviders.com/Google/ (Socialite Base)
Permissions
Architecture
- create overview/bird’s eye
Database
- Check ER diagram
- Create ‘news’ table + model + controller
- Check models
- Create migration script from old schema to new one
- Optimize queries: https://omarbarbosa.com/posts/optimization-of-eloquent-queries-to-reduce-memory-usage
- create legacy->new database mapping
- finish design of new database schema
-
generate new models from database
- check if the relations are correct
- implement repository pattern via interfaces
-
migrate data from legacy to the new database schema
-
use
command
andseeder
setup
-
use
Models
- implement metadata for ArdPlayer
-
implement metadata for player/team import
-
check how to get all metadata for an
ArdPlayer
-
check how to get all metadata for an
-
move
Player::aliases
toPlayer::metadata->alias
-
move
Player::other_socials
toPlayer::metadata->socials