Skip to content

ayoubedd/project42

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

project42

Introduction

This repository showcases projects completed throughout the 42 Common Core curriculum.

Table of Contents

Overview

The curriculum at 42 starts with the core curriculum. This experience sets the base for minimum skills, both human and technical. Following each student’s personal pace, it lasts a maximum of 18 months and lets students learn C programming, develop simple software using classic algorithms, discover access to the file system, and learn management of the UNIX process. It also includes a simple first approach to network architecture as well as system administration.

42

Projects List

Project Details

libft

  • Description: This project is about building your first C static library which you will be using throughout the entirety of the common core.
  • Technologies/Tools Used: C, Make
  • Key Learnings: Getting more familiar with c toolchain and compilation processs, get to know static and shard libraries.
  • Link: libft

ft_printf

  • Description: This project is about implementing your own basic printf since dealing write for printing is becoming quite tedious.
  • Technologies/Tools Used: C
  • Key Learnings: Variadic functions in C
  • Link: ft_printf

get_next_line

  • Description: This project is about implementing your own basic kind of readline which you will use a lot for grabbic user input, or basically reading from a file descriptor line at a time.
  • Technologies/Tools Used: C, UNIX
  • Key Learnings: Dealing with UNIX file descriptors, and memory management.
  • Link: get_next_line

born2beroot

  • Description: This project is about creating and setting a linux vm from the ground up. Setting up partitions, users, permissions, services ...
  • Technologies/Tools Used: Virtual Box, Linux and bash
  • Key Learnings: Getting familiar with Linux, tty and shell scripting.

pipex

  • Description: This project is about creating a simple program which will take a number of commands, run them, pipping output of the command to the input of the next one.
  • Technologies/Tools Used: C, Make, UNIX Pipes
  • Key Learnings: Dealing with UNIX file descriptors
  • Link: pipex

so_long

  • Description: This project is about creating a simple 2d graphical game using mlx graphics library.
  • Technologies/Tools Used: C, Make, mlx
  • Key Learnings: Gentle introduction the graphics world
  • Link: so_long

push_swap

  • Description: This project is about creating a program which will take as a input a variables number of numbers as a arguments, and should ouput predefined serie of instructions to sort these numbers in two stacks.
  • Technologies/Tools Used: C, Make
  • Key Learnings: A Good project to get hands drity working with stash'ish data structure, and sorting algorithms overall.
  • Link: push_swap

philosophers

  • Description: This project is solving the classical "The Dining Philosophers" problem.
  • Technologies/Tools Used: C, Make
  • Key Learnings: Great intorduction into multi-threaded programming, dealing with data races and race conditions.
  • Link: philosophers

minishell

  • Description: This is a team project is about creating a basic shell, which supports variable expansion, pipping, signal handling ...
  • Technologies/Tools Used: C, Make
  • Key Learnings: Get to know the shell by creating one (what's better than that ?).
  • Link: minishell

cub3d

  • Description: This is a team project is about building a game like wolfenstein (using Raycasting)
  • Technologies/Tools Used: C, Make
  • Key Learnings: Building games without a game engine is hard.
  • Link: cub3d

netpractice

  • Description: This project is a great opportunity to learn about netwrking concepts like IP, TCP, DNS, DHCP, SWITCHES, ROUTERS ...
  • Technologies/Tools Used: Project simulator
  • Key Learnings: Learnt basically the internet works. and devices talk to head others using a set of protocols.

42cpp

  • Description: This is very such like the C picine but in c++, a set of cpp exercies which will make sure you get cpp/oop concepts.
  • Technologies/Tools Used: C++, Make
  • Key Learnings: Object oriented programing, RAAI, Exceptions, IO
  • Link: 42cpp

inception

  • Description: This is a great project to get your hands dirty with docker and Containerization in general, which is about creating a minimal infrastructure of services (Wordpress, Mariadb, Redis, Nginx).
  • Technologies/Tools Used: Docker, Docker compose, Nginx, PHP-FPM, Mariadb, Make
  • Key Learnings: Containers, Containerisation, Setting up nginx as a reverse proxy ...
  • Link: inception

webserv

  • Description: This is a team project what made feel conforatble with web Technologies in general, it's about creating a webserv from the ground up, realying on nothing but Berkeley sockets api and C++98 standard library.
  • Technologies/Tools Used: C++, Make
  • Key Learnings: HTTP Spec, Multipart-formdata, Event driven programing
  • Link: webserv

ft_transcendence

  • Description: The last project in the common core, a team project about creating a in browser realtime pong game, with chat features, firends, one to one games, spectating other games.
  • Technologies/Tools Used: Nodejs, Typescript, Matterjs, Vuejs, Nestjs
  • Key Learnings: Got the opportunity to build a faily complex app with modern solutions, like Typescript, Nodejs and Vuejs.
  • Link: ft_transcendence

Acknowledgments

Thanks to everyong i worked with in these projects it really was a blast.

Last but not least to all of my friend in 1337 Benguerir i appreciate you all, and to all the 42 community.

About

My 42 cursus journey

Topics

Resources

License

Stars

Watchers

Forks