Last update: 13 October 2023

Welcome to my GitHub Portfolio

Hello wello wellooo!
Welcome to my little portflio where you'll be able to see what I made while being a student at OpenClassrooms (November 2022 - October 2023) as well as what came after.
Please bear in mind that I joined the course in November 2022, so many projects may not appear to you that Mjölnir-worthy. I chose to share Project 4 despite not having the cleanest code, as it was the first big project and by far the hardest (using the MVC architecture for a beginner, come on...) and at that time I was quite proud of the result.
* The projects are displayed in reversed chronological order. *

Hangman game in Python (October 2023)
project12Features: Language choice, "drawings" of the gallows and stick dude, right/wrong entered letters are displayed (in their respective list), health "bar", definition of the picked word.
First project after having graduated. Yep, nothing big, nothing fancy, but a working game that does what it's supposed to. Except coffee. Aaaah life...
Recommended config: Intel i14 36 Core, RTX 5090 1500W Card Of The Year Edition, SSD 6th Gen., 128MB RAM, 50KB of free space.
No customer service, no warranty, NO NOTHING. Donations through PayPal welcome and mandatory.

Project 13 (OpenClassrooms) - Deploy a Django app using a modular architecture (October 2023)
project12Features: CI/CD, Django, refactoring, data migration, environment variables, Sentry, Docker (+ docker-hub), CircleCI, Microsoft Azure
The goal was to divide a given Django app into 2 apps (actually 3 as we kept the stripped original one), fix/improve some parts of the code, add customized error 404 and 500 pages, make a Docker image and deploy the app live.
To do so, CircleCI was used to create and deploy the Docker image that would be pushed towards my docker-hub repository (only if the build went well), which would be pulled by Azure thanks to a webhook shared between Azure and docker-hub, allowing a continuous deployment. This is the URL to the deployed version: https://munchou-p13.azurewebsites.net, not sure that it'll still be valid by the time you check it but hey, just know it worked and Azure is awesome.

Project 12 (OpenClassrooms) - Develop a secured back-end architecture with Python and SQL (August 2023)
project12Features: PostgreSQL, SQLAlchemy, Sentry, database creation/modification, mocking/monkeypatching, unit and integration tests, MVC
Although it is written "back-end", I chose to develop the whole interface. The crazy thing about it? EVERYTHING can be done through the program: config file, DB creation, connection to another DB, creation/update of objects (users, clients, etc.) and more. Depending on the department the user belongs to (management, sales or support), they are shown their own menu with its own functionalities. An equivalent to permissions. Obviously, the admin/superuser gets their own god-like menu. A leak of password is not recommended...
A project I'm quite proud of. Not visually impressive (command terminal, come on...), but technically solid and user-friendly. Who wants to retrieve and edit data by typing long command lines instead of numbers and relevant information?
Following the MVC architecture, I separated the important features (data access layer, SQLAlchemy queries, menus, views (=input and messages, anything related to visual text), etc.) in different files for an easier maintenance. A program that took me more than a month to make...

Project 11 (OpenClassrooms) - Improve an app through tests and debugging (June 2023)
project11Features: Flask app, app fixing/improvement, mocking/monkeypatching, unit and integration tests, git branching/merging
There are some people who do a half-assed job, don't care about it and will find any excuses to have others get their work done. That's the case in that project, and we are the chosen slave to fix some incompetent's mistakes/absence of professionalism. Although it's an interesting project, I wouldn't stay quiet about some "pro's" poor job. Frustrating.

Project 10 (OpenClassrooms) - Build a secured RESTful API using Django REST (June 2023)
project10Features: JWT, permissions, get/post/update/delete, test with Postman, documentation with Postman
A project I didn't particularly enjoy. Back-end without a little front-end, having to test it all with Postman. The result is there, everything workds (user creation, authentication, JWT, create a project/collaborator/issue/comment, edit/delete them, retrieve info...), but I didn't take pleasure. A necessary evil in the life of a developer, right?

Project 9 (OpenClassrooms) - Develop a Web app using Django (May 2023)
project09Features: authentication, request/post/edit/delete book reviews, follow/unfollow users
One of the projects I'm the most proud of. The goal was to make a website using Django (Python) that would allow users to request/post/edit/delete book reviews. Reviews are only visible if the author is being followed by the user. Same goes for the reply feature. As such, users can follow/unfollow other users either by clicking a button, or by typing there usernames in a text box. The design of the website is simple but neat.

Project 7 (OpenClassrooms) - Solve problems by using algorithms in Python (April 2023)
project07Features: bruteforce, optimized KnapSack algo, own optimized algo
Given 3 lists of shares and a budget, the goal is to get which shares to buy to get the maximum profits. The bruteforce algorithm is used on a list of 20 shares (and takes quite some time). The optimized algorithms are used on 2 lists of about 1000 shares each, in which some shares are unusable (price being <= 0). To understand the differences between each algorithm, go to the repository and click on the "results.png" file.

Project 4 (OpenClassrooms) - A chess tournament managing program (in French) (January 2023)
project04Features: MVC, creation/update/deletion of data into JSON files
That program allows you the user to create a tournament (name, location, description, add 8 players), resume an existing tournament, add players to the database, update a player's information, delete a player, display reports (players in the database, tournaments, players from a specific tournament, rounds and matches of a specific tournament).