I'm in 42Paris since October 2021. Here are the projects I had fun doing so far:
Project | Purpose | Competences acquired | Programming language |
---|---|---|---|
Transcendence | Implementing from scratch a multiplayer responsive Pong game website SPA #web | β’ Full-stack web development; β’ Backend development with Nest.js; β’ Frontend development with TypeScript; β’ Database management with PostgreSQL; β’ OAuth authentication integration; β’ Security practices and implementation; β’ Real-time communication and chat functionality; β’ Multiplayer game development; β’ Responsive web design; β’ Containerization with Docker; β’ Troubleshooting and debugging; β’ Project management and teamwork; |
TS |
webServ | Building a webserver from scratch Nginx style #web | β’ Socketsβ programming; β’ HTTP protocol; β’ Webservers; β’ Event-driven programming; |
C++ |
Inception | Building a Docker Network including Nginx, MaraDB and WordPress #docker | β’ Containerization; β’ WP; β’ Dockerfile; β’ Docker-compose; β’ Docker-network; |
Bash |
Shoot 'em up | Building the Shoot 'em up game using the ncurseslibrary running under terminal emulator #gaming | β’ Manipulating ncurses; β’ Manipulating ASCII art; β’ Building a game strategy; β’ Handling collisions; β’ Handling levels escalation; β’ Building a GUI |
C++ |
connect Four | Building the connect Four game + an AI that wins all the games #gaming | β’ MiniMax algorithm with pruning β’ Bitwise operations |
C |
wordle | Reproducing the wordle game #gaming | β’ Building a Terminal Based Game β’ Color handling β’ Game looping |
C++ |
miniRT | Building a homemade RayTracer from scratch #CG | β’ Deep knowledge in geometry, vector operations, and scalar operations β’ Camera space - Object space - World space mastery β’ Handling of a graphical library β’ Deep knowledge of RayTracing Technique β’ Geometry of primitives (plane - sphere - cylinder) β’ Handling of light spots β’ Phong effect β’ Checkerboard β’ UV mapping β’ Bump mapping β’ TBN transformation β’ Debugging |
C |
miniShell | Building a Bash POSIX compliant commands' interpretor #unix | β’ Building a Lexer Parser β’ Building a parse library tree β’ Handling environement variables β’ Building bash builtin commands from scratch β’ Handling commands execution β’ Handling variables expansions and wild cards |
C |
philosophers | Building a Dining Philosophers Problem solver #unix #multithreading | β’ Concurrent algorithm design β’ Multithreading β’ Mutexes handling β’ Data races β’ Deadlock |
C |
FDF | Building a maps gnerator from space separated coordinates files using the minilibix graphical library #CG | β’ Parsing β’ Handling a graphical library β’ Computed Aided Design (CAD) β’ Geometry β’ Translation - Rotation - Scaling (TRS) transformations β’ Model - View - Projection (MVP) transformations β’ Handling of hexacolors and colors gradients β’ GUI creation |
C |
pipex | Simulating Unix pipes behavior #unix | β’ I/O operations β’ Multiprocessing β’ Handling Env variables β’ Fd management β’ Forking β’ Duplicate and redirections β’ Pipes β’ Multipipes β’ Error handling |
C |
push swap | Sorting a list using 2 stacks and a limited number of operations #algorithmics | β’ Knowledge about sorting techniques β’ Knowledge about complexity and Big O notation β’ Statistics notions β’ Bitwise operations β’ Optimisation techniques |
C |
born2BeRoot | Creating a VM and configuring it #virtualization | β’ Debian installation β’ Distribution configuration β’ Users management β’ Monitoring β’ Handling security and permissions |
Shell |
printf | Building printf C function from scratch #C | β’ Variadic varibales β’ Exploitin man files |
C |
getNextLine | Building a function that simulates getline C function behavior, reading line per line from multiple streams, and using buffer size as a parameter #C | β’ Handling reading from multiple fds β’ Using static variables β’ Buffer reading |
C |
libft | C standard library rewrite #C | β’ Building first personal C library β’ Makefile mastery β’ Reverse engineering C basic functions β’ Rigor β’ Translating man documentation to code β’ Rigourous memory handling |
C |