Skip to content

lifeBalance/camagru

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

camagru

The goal of this project is to build a small web application that allows you to take pictures using the webcam, and make basic photo editing using some predefined images. As with any other 42 project, there were some constraints:

  • It had to be written in PHP.
  • Every framework, micro-framework or library that you don’t create are totally forbidden (except for CSS frameworks that doesn’t need JavaScript).

graded

My approach

During the PHP piscine, I remember my frustration and sense of being lost (😿) while doing the first rush (a small e-commerce site). So when I started this project, I knew for sure I wasn't going to jump into coding without a proper strategy.

The same way people don't start building houses without some blueprint, software developers use software architecture patterns to build apps. One of the most popular ones is the famous MVC (short for Model-View-Controller).

Most popular web frameworks are based in this architectural pattern: Ruby on Rails, Django, Laravel, etc.

No serious shop out there is building web apps without using any framework, either an existing one, or one developed in-house. But since already made frameworks were forbidden for this project, I figured I had to cook my own, and so I did. In doing so, I got to demistify the MVC and understood that often, behind enigmatic acronyms hide simple concepts that are there to simplify our work.

Next are the notes I wrote while doing this project (expect lots of memes and nonsensical remarks).

  • [] Learn how to use PHP namespaces.
  • [] Update the notes to final version (stopped writing properly in the middle of the proj).
  • [] Look into Docker Secrets.
  • [] Extract to a minimalistic and educational MVC framework (with proper docs).

◀️🏠▶️

About

PHP Web application (Hive Helsinki)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages