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 |