Return

Mixology Web App Opensource

CMS Custom MVC MySQL PHP 8 Web

The Mixology app is my coursework at university, the main subject here is to develop your own CMS with PHP and then use it to build a website following MVC pattern.

The CMS here is very simple, still rich enough to make a simple website.

CMS Features:

  • Core:
    • Supports simple middlewares for multiple routes specified via regex;
    • Supports .env file with custom configurations via Config class.
  • Database:
    • Supports CRUD operations and pure SQL execution;
    • Supports ORM for models.
  • Router:
    • There is no need to define routes for each controller and action, your filesystem on the website defines them;
    • Router supports sections recursively, for example, you can have a controller that lives within a section which also can live within another section;
    • Routing in brief: if domain has nothing after it - look for IndexController and execute index method, if there is 1 argument, look for it inside IndexController and execute it, otherwise look for a controller with such name, 2+ arguments - same order but add sections to the end of the list, etc.
  • Controllers:
    • Automatically defines required view for actions;
    • Defines basic GET/POST requests;
    • Implemented FILES handler;
    • Responds with view, error template or JSON format for API calls.
  • Views:
    • Supports templates, you can change the template if required or use a default one;
    • Use data passed from the controller.

Those are the main key features of the CMS I've developed during coursework, on Get Started guide check the README.

Now to the application. The main goal of it is to provide a catalog of cocktail recipes. The user can register and publish their own recipes, add existing ones to their favorites and also manage their bar. In the bar tab you can add ingredients that you already have in your bar and while looking for a recipe, you will see how many and what exact ingredients you have that are needed to make a cocktail.

P.S. Sorry for the images quality, I had to download them from my coursework as I've dropped the database after completing it ^^

Views: 27
Published: 04.06.2024
Changed: 13.01.2025