mailEmail me
  • Gallery
  • Dark Theme
  • Blog
  • Docs
  • Featuresarrow_drop_down
  • Fullscreen Header
  • Horizontal Style
  • No Image Expand

LE MONIES DE SAGAZAN Mayeul

Projects
  • All
  • Web
  • Cli-app
  • Lib
  • cameraGallery
  • brightness_3Dark Theme
  • editBlog
  • schoolDocs
  • fullscreenFullscreen Header
  • swap_horizHorizontal Style
  • textureNo Image Expand
Backoffice system for Adonis apps
Adomin

Adomin

Backoffice system for Adonis apps

adonis
TypeScript
nodejs

Linux
Windows
Mac
IOS
Android


Demo

Adomin is a "copy pastable" base for a quick and solid Adonis app backoffice with the ability to add infinite customisations. It's a starting point for creating a custom backoffice for any Adonis application it's composed of: - backend files that will be imported on your adonis backend - a react/vite frontend repository to clone Feature list: - CRUD functionnality - powerfull filters / search - easily organise your backoffice tabs with folders in the sidebar - backend actions in the table list view (run a backend action on a given row) - easy to implement charts for statistics / KPI pages - custom pages See the documentation to learn more https://galadrimteam.github.io/adomin/ As of 2025, Adomin is used in production in a dozen of enterprise projects

Reservation system & other office tools
Galadrim Tools

Galadrim Tools

Reservation system & other office tools

nodejs,
TypeScript,
adonis,
react

Linux
Windows
Mac
IOS
Android


Demo

It all started at Galadrim when we would bump into each other trying to find an empty meeting room for our calls, as the solution proposed was a shared google sheet, I steped in a created a beta of "Galadrim Rooms" in a weekend. As I open-sourced the project, I sometimes got help from some of my co-workers and with time we added a lot of features : - map with nearby restaurants added by co-workers, ability to rate, comment, see lists of best rated restaurants - ideas box, with ability to remain anonymous - "galaki" a game to remember new coworker names using spaced repetition algorithm (like Anki cards) - everything is in real-time with websockets - even an integration of an old platformer game I made in highschool with a company score board (one of my co-worker is unbeatable...)

Transcrypt alternative for nodejs ecosystem
Galacrypt

Galacrypt

Transcrypt alternative for nodejs ecosystem

TypeScript
nodejs

Linux
Windows
Mac


Demo

Galacrypt is an alternative to transcrypt with simpler mental model and 0 dependencies Why Galacrypt ? - Pushing .env files is just not for me (transcrypt encrypt/decrypt .env files on the fly before commiting) - I think commiting .env adds a mental charge of making sure transcrypt is well configured before pushing your .env (counter intuitive action) - In fact I think that transcrypt way "looks like a hack", what is done differs from what you see: e.g.: you see a clear .env, but in the git file, it's encrypted. TLDR: When dealing with secrets I prefer WYSIWYG What does galacrypt do? - In your config you define a set of input/output files - On commit (or when running yarn galacrypt encrypt) it will encrypt those files using an AES 256 key, stored in a file .galacryptkey - On git pull, git rebase (or when running yarn galacrypt decrypt) it will decrypt those files As of 2025, Galacrypt is used in ~30-50 enterprise projects

Interim management software  (Galadrim project)
Directskills

Directskills

Interim management software (Galadrim project)

TypeScript
nodejs
mobx
react

Linux
Windows
Mac
IOS
Android


Demo

I worked for more than a year as a software engineer on this project, joining the internal workforce of Directskills. This is on this project that I learned how to really use TypeScript, not the "userland" side of TS, more of the "library wizard stuff" side of TS. On this project, I mainly worked on frontend, but more like the "backend" side of frontend : - making libraries and abstractions usable by the team - improving tooling - profiling and improving TS compiling time and frontend build times (which was reaaaly long at the time)

Fresh food store backoffice and mobile app (Galadrim project)
Lucie

Lucie

Fresh food store backoffice and mobile app (Galadrim project)

TypeScript
nodejs
react-native

Linux
Windows
Mac
IOS
Android


Demo

I was on this project as a Lead Developper. My role was to choose the architecture and technologies, implement core features, give tasks to other developers, review code On this project, we implemented: - basket price calculation with automatic menus pricing, anti waste, promotions codes - QR code on the app to unlock the door - glueing all API of Lucie's partners together in our backoffice (logistics, hardware in store, self checkout machine) You can find the app on apple and android with the name "Lucie la cabane autonome"

Travel blog website POC
Que Faire Où ?

Que Faire Où ?

Travel blog website POC

astro
TypeScript

Linux
Windows
Mac
IOS
Android


Demo

On this project, I used the AstroWind theme from Astro to create a POC of a travelling tips blogging website Check the demo, I recon it's quite aesthetic

Dockerisation & maintenance on their french homepage (Galadrim project)
Universal Music

Universal Music

Dockerisation & maintenance on their french homepage (Galadrim project)

docker
vuejs



Demo

What I did on this project: - dockerisation of multiple sub-apps (backend, backoffice, nuxt frontend) - meetings and communication in english with Universal Music USA devops team - bug fixes in ETL pipeline - maintenance, versions upgrades, small UI fixes in vuejs

Software for ear practicionners (Galadrim project)
Aurimatrix

Aurimatrix

Software for ear practicionners (Galadrim project)

adonis
nodejs
TypeScript



Demo

In this project, the main challenge was displaying 3d ears and let practionners create "protocols". To create a "protocol" they would click on specific points on the ear and save it to show their patients what they will do. Other features included: - patient CRUD - patient sessions - session analysis page - software parameters page - protocols CRUD - ear points CRUD

Freight broker app (Galadrim project)
Dafret

Dafret

Freight broker app (Galadrim project)

TypeScript
Adonis
nodejs



Demo

In this project, the main challenge was understanding how freight rates worked, and going from pdf rates to dynamic forms to handle all pricing cases. In freight, prices calculation take into account many variables (weight, size, density, type of transport, distance, location, etc.) In this software, a broker could enter any type of freight pricing via a dynamic form, then a client could put their freight parameters (package size, etc etc) and get all matching rates as price quotes.

Platform connecting freelancers with employers (Galadrim project)
Elleboss

Elleboss

Platform connecting freelancers with employers (Galadrim project)

nodejs
nestjs
TypeScript



Demo

This was my first Galadrim project. This project is a "Malt" clone, but for women freelancers. Budget was a bit tight, but we delivered the app just in time. Some features of the project: - connection as a freelance - connection as an employer - payments with stripe - real-time chat interface with document sharing - freelance profiles - job offers with emphasis on SEO (SSR, metadata, etc) - freelancer search, job search

IRC server implementation
ft_irc

ft_irc

IRC server implementation

c++

Linux


#### What is IRC ? **Internet Relay Chat** or IRC is a textual communication protocol on the Internet. It is instantaneous communication mainly in the form of discussions in groups via discussion channels, but can also be used for one-to-one communication. IRC client programs connect to an IRC server to access specific channel. IRC servers are connected between them to provide a global network with unique channels. #### Why this project ? This is a 42 school core project. As it is a group project, I made it with Quentin FEUILLADE. #### What is implemented ? This implementation follows the RFCs 1459, 2810, 2811, 2812, 2813 and 7194 #### Constraints: We were allowed to use: - standard CPP containers - a cryptographic library - these functions: socket, open, close, setsockopt, getsockname, getprotobyname, gethostbyname, getaddrinfo, freeaddrinfo, bind, connect, listen, accept, htons, htonl, ntohs, ntohl, inet_addr, inet_ntoa, send, recv, exit, signal, lseek, fstat, read, write, fcntl, select, FD_CLR, FD_COPY, FD_ISSET, FD_SET, FD_ZERO **This project was very interesting, it lead us to a better understanding of network programming.**

 Pong game website
ft_transcendence

ft_transcendence

Pong game website

rails
ruby
backbone
handlebars
js
posgresql
docker

Linux
Windows
Mac
IOS
Android


#### Why this project ? This is a 42 school project, the last of the common core #### What is this project ? This is a website where the user can login via the 42 Oauth2 API, and then he can play pong in normal game for fun or in ranked to grind the ladder. Users can also create guilds, chat with his friends, participate in guild wars... #### What is implemented ? - matchmaking - pong games (in real time with websockets) - leaderboard (elo system) - tournaments - guilds - friends - chat rooms - guild wars - admin tools (bans, mute)

a platform to watch peerclass rediffusions
Peerclass Rediff

Peerclass Rediff

a platform to watch peerclass rediffusions

adonis
typescript
mysql

Linux
Windows
Mac
IOS
Android


Demo

#### Why this project ? On the 42 school discord, we have a "peer class" system, that is to say a video-conference where one of the students shares his skills on a subject in particular. However, many students complained that there was no replays available. So I created this platform where we can group the replays as VODs #### What is implemented ? - login with 42 - user can post videos - user can edit/destroy his videos - admin can validate/edit/destroy videos - all logged in users can see all validated videos

A simple real time pictionnary game
Simple Pictionnary

Simple Pictionnary

A simple real time pictionnary game

node
socket.io
js

Linux
Windows
Mac


Demo

#### What are the rules ? Someone draws a word that he picked, others players have to guess it. #### What is implemented ? - Unique game rooms - Score system - CTRL-Z CTRL-Y to undo / redo - CTRL-S to save the drawing as PNG - Right click on the canvas to open color menu - Click with the scroll button to fill an area - Hold shift to draw straight lines - Use scroll to increase / reduce line size

Website for artists from my high school
Renouv.art

Renouv.art

Website for artists from my high school

node
socket.io
js
html
css

Linux
Windows
Mac
IOS
Android


Demo

#### What is this site: This website was **a display case for the artists** from my highschool, they could post drawings, photographs, writings and musics. They could like each others posts and talk in the comment section. They could also talk in the global chat, and play games when I organized events on the website. #### Story When I was in highschool a good friend asked me if I wanted to build a website for artists from our school. So I built it, I wanted to do it with almost no dependencies, from that point of vue, it is a succes as there is **only 4 npm packages** needed: - http - jshashes - socket.io - mongodb On the other side, doing it from (almost) scratch lead me to sometime write non DRY code, if I were to redo the website I would probably use react or vue to make things easier to maintain. #### Features - authentication system - posts: pictures, drawings, audio, text - post likes system - post comments system - real time chat This website is still live but is not active anymore.

UNIX shell implementation in C
Minishell

Minishell

UNIX shell implementation in C

C

Mac


#### What is it ? Minishell is a 42 school group project. I did it with Guillaume El Kasri. #### What is implemented ? - Minishell uses the PATH variable to search and launch the right executable - It has the following builtins: - echo - cd - pwd - export - unset - env - exit - Simple and double quotes (' and ") works as in bash - Redirections with <, > and >> are accepted - Pipes work as in bash - Environment variables works as in bash, the special variable $? is implemented - ctrl-C, ctrl-D and ctrl-\ have the same result as you would get in bash - You can navigate through commands history with the arrows keys

Implementation of STL containers
ft_containers

ft_containers

Implementation of STL containers

c++

Linux


#### What is it ? This is a 42 school project. The goal is to re-implement the containers of the Standard Templating Library of c++ The containers implemented are: - List - Vectors - Map - Stack - Queue **This project made me understand the differences and use cases of each containers.** Others things that I made for this project: - writing thousands lines of tests to verify that my library has the same output as the official - setting up continuous integration with github to prevent regressions

Real time shooter with 3D cars
Vroum

Vroum

Real time shooter with 3D cars

node
socket.io
js
three.js

Linux
Windows
Mac


Demo

#### Rules and Gameplay - There is one shooter and several fugitives - The shooter can shoot red shots with Z and blue shots with X - Red shots slow down targets and has a low cooldown time - If you hit someone with a blue shot, he becomes the shooter and you become a fugitive. All fugitives have 10 seconds of invincibility - You can move with the arrow keys - You can go through walls but this slows you down and make you visible on the minimap (fugitives are blue dots, shooter is the red dot) - There are 4 camera views, you can toggle them with F1, F2, F3, F4 You can change the keys bindings by opening the menu, press C

Turn based board game like chess or GO
Coin War

Coin War

Turn based board game like chess or GO

node
socket.io
js

Linux
Windows
Mac


Demo

#### What is it ? This is the web implementation of a board game that I invented. Below is the complete list of the game rules. #### THE RULES : ##### I) GENERAL - the game is more enjoyable with a mouse than a touchpad (you have to drag and drop) - to play you need to create an account (it's quick, you just need an account name and a password) - the goal is to fill the whole field with stack of coins, the player with the most stacks of his own wins ##### II) HOW TO PLAY - We start the game with 3 action points (AP) - You can spend your AP in two different actions: - add: allows to add a coin on a stack * we cannot add a coin to a stack >= 9 coins - split: allows to separate a stack of coins (only if the height of the stack > 1 coin) * for this option, you have to drag and drop a stack of coins to a square adjacent to the original square of the stack * split always leaves 1 coin in the original stack and moves the rest of the stack to the targeted cell * if there is a stack of enemy coins on the targeted square, a subtraction will take place for example if a player splits a stack of 5 coins on a stack of 2 of the opponent, we make 4-2 = 2, the resulting stack will therefore be 2 coins - there are different ways to earn AP: * make big stacks of coins: - at the beginning of the turn a stack >= 9 pieces makes you earn 2 AP - at the beginning of the turn, a stack >= 6 coins makes you earn 1 AP (unless >= 9 coins in which case it earns 2 AP, obviously ^^) * make many stacks: - at the start of the turn you earn 1 AP for every 10 stacks of coins, for example a player with 23 stacks of coins will gain 2 additional AP at the beginning of his turn - If a player makes a perfect square with his stacks of pieces, ALL of the squares in that square are replaced by stacks of 1 piece from the player in question. * **WARNING** the square need to be a perfect square, rectangles do not count * **WARNING** ALL the stacks inside the square are replaced, including those which belonged to the enemy * **WARNING** ALL the stacks inside the square are replaced, including yours (be careful not to lose large stacks of pieces) ##### III) ADVANCED MECHANICS - It may be more efficient to surround a large stack of your opponent (in order to create a perfect square around it) rather than split stacks of coins directly above it. - It can be interesting to split very small stacks on large stacks of your opponent in order to prevent the opponent from passively gaining too many action points

Simple messaging app
Messenger

Messenger

Simple messaging app

node
mongodb
socket.io
js
css

Linux
Windows
Mac
IOS
Android


Demo

#### What is it ? - It is a simple messaging app - There is not so much to say, functionalities are really basic for a messaging app. #### What is implemented ? - You can create conversations with one or many other users - You can talk in those conversations - You see the conversations in which there are new messages - You can get notifications - It's a single page application but you can use the back button of your browser

Small lib in C with utils functions
Libft

Libft

Small lib in C with utils functions

C

Linux
Mac


#### What is this it ? This is the first project of the 42 school. The goal is to implements the some functions of the standard libc and wrap it in a C library. #### Naming convention All of the functions implemented had to start with ft_ for example memset had to be named ft_memset. #### What is implemented ? - memset - bzero - memcpy - memccpy - memmove - memchr - memcmp - strlen - strlcpy - strlcat - strchr - strrchr - strnstr - strncmp - atoi - isalpha - isdigit - isalnum - isascii - isprint - toupper - tolower - calloc - strdup ##### This lib also has non standard functions - ft_substr - ft_strjoin - ft_strtrim - ft_split - ft_itoa - ft_strmapi - ft_putchar_fd - ft_putstr_fd - ft_putendl_fd - ft_putnbr_fd ##### And also linked list utilities - ft_lstnew - ft_lstadd_front - ft_lstsize - ft_lstlast - ft_lstadd_back - ft_lstdelone - ft_lstclear - ft_lstiter - ft_lstmap