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
 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)

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.**

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