These are differents medium-sized personal projects. Some are private, because they're not finished, and maybe will never be. It is for my self-train purposes.

Flavibot

Flavibot is a Discord bot originally built in NodeJS, accompanied by a website developed in Express by a young 14 years old enthusiast with no prior expertise.
I completely restructured the entire project, including the website, this time opting for VueJS, all while providing training along the way. This architectural overhaul has empowered the Flavibot's author to develop in a modular fashion, resulting in significant performance improvements.
As of today, Flavibot is in use on over 215,000 servers, serving a user base of over 20 million users. It is notably featured on the Rocket League France server, as well as those of Kotei and Kameto, among many others.

Tournament Studio

This is a significant-scale project. No tournament platform offered a solution for tournament balancing. I observed that in my circle, tournaments fell into two categories: those with no balancing (open tournaments) and those where organizers spent several days balancing teams only to end up with unsatisfactory results.
To address this gap, I developed a matchmaking algorithm within a tournament management system. This platform provides a comprehensive range of options for organizing various types of tournaments. Furthermore, it allows participants to link their accounts to Riot Games, enabling the site to retrieve their profiles and perform automatic balancing based on their ranking (elo) and role preferences (lanes).
This project is developped with separated backend and frontend. The backend uses NodeJS and Express, while the backend uses NodeJS and Angular.

C++ 2D/3D Engine

I am currently engaged in the development of a comprehensive 2D/3D adaptive engine entirely from scratch, utilizing C++, SDL2, and OpenGL 4.6, with plans to adapt it for Vulkan compatibility.
My primary objective is to gain a deep understanding of the inner workings of existing 3D engines, focusing on algorithm optimization, shader programming, lighting techniques, and other critical aspects encountered in engines like Unreal Engine and Unity.
This endeavor involves creating a potentially stable and reusable engine suitable for various 2D and 3D projects, with an emphasis on optimizing performance and resource utilization while keeping complexity in check. To guide my efforts, I draw inspiration from the structure of the THREE.js library, which leverages WebGL for rendering.

League of Legends website

The website was developed using NodeJS with Express and EJS, and it integrates the Riot Games API. It offers several features related to the video game League of Legends. Users can explore a complete list of champions, with the option to access detailed information about each character.
The website also allows visitors to view a player's profile. The profile includes four informative tabs: the history of their games, mastery of their champions, recent rune pages, as well as details of the ongoing game. Furthermore, the site displays the player's ranking and in-game statistics.
Lastly, a fun feature called "Ultimate Bravery" is available, allowing players to randomly generate a consistent build, runes, spells, lane, and champion to spice up their matches.
To keep the information up to date, the site automatically updates data based on the latest game patch, thanks to a cron system.

Runeterra 7 families

This is a version of the famous "7 families" card game, set in the captivating universe of Riot Games' Runeterra. When a game starts, seven regions of Runeterra are randomly selected, and among them, six champions are also chosen at random.
An earlier version of this game is available online on my GitHub account, using Firebase and PHP for its functionality, but it doesn't work well. Currently, a new version is in development, based on NodeJS and incorporating Socket.io for enhanced features.

Soraka Discord bot

Discord bot, originally named Ahri in its initial version but later renamed Soraka, was developed using NodeJS and deployed on the Heroku platform. It was integrated with the Riot Games API to provide the same functionalities as the website I had developed for League of Legends. Additionally, it offered basic features such as server management, mini-games, and audio playback on a specific channel.
This bot has been offline for five years now, but the GitHub repository is still accessible.

Wallp

This was a project led by Antoine Bergerault, where I took on the role of the front-end developer while he handled the back-end.
We utilized a combination of HTML, CSS, JavaScript, PHP, and SQL for this project. Its primary purpose was to enhance our programming skills and provide us with experience working on team projects.
The project involved the creation of a wallpaper website, allowing users to download, upload, and share wallpapers, accessible both on PC and mobile devices. Unfortunately, the website is no longer active due to a lack of user activity.

PHP base template

This is a PHP ⩾ 7.3 template designed to simplify the retrieval and development of a website. It encompasses several components:
www/ : The visible part of the website. api/ : The backend, if needed. developer/ : A graphical interface for inspecting and testing various API endpoints. engine/ and common/ : Fundamental structural elements of these directories.
The structure draws inspiration from ExpressJS, particularly for the MVC (Model-View-Controller) pattern, controllers, and routing. It also incorporates a guard system inspired by Angular. The design of the RESTful API and the developer section is influenced by Riot Games' developer API.
I used this template for a university project, and the new version of my website benefits from it.
While I haven't created a wiki for using this template yet, I plan to do so in the near future.

NFPM - C / C++ project script

This is a bash script that significantly simplifies the management of small to medium-sized C or C++ projects.
It handles project structure configuration, library integration, compilation, and execution.
This script is a tool I use in most of my projects when developing on Linux with Visual Studio Code.
I have made it publicly available for anyone to benefit from when needed.
You can configure Visual Studio Code to launch the debugger with this script, making debugging an easy process.

Canvas library

It started as a JavaScript script with just a few lines to factorize certain recurring functions used across my projects involving the canvas.
Over time, I added utility functions (such as time-based transition functions), classes (like Vector, Matrix, Time, Quadtree, PerlinNoise, and Color), and even a camera system and plugin management.
It finally evolved into a small library that makes it quick and easy to develop simulations or games.
I've made this library publicly available for others to use. An NPM package is also available.

Portal with ThreeJS (game reproduction)

I attempted to recreate Valve's game Portal using Three.js to practice and become proficient with this framework.

Minecraft with SFML (game reproduction)

I attempted to recreate Minecraft using SFML to practice C++, and become proficient with this framework.