Alx Holberton: My Foundations Portfolio Project
By the time of writing this post, I am in my final month of ALX software engineering foundations. In case you don’t know, ALX software engineering is a 12 month intensive software engineering program that requires a 70 hour work week commitment, And this is no joke.
Part of the foundations section includes big projects from time to time such as writing a unix commandline interpreter, a bytecode interpreter, A full stack AirBnB clone and much more. At the end of it, one is required to research, build and present a project of their own choosing.
WHAT WAS MY THOUGHT PROCESS ?
I wanted to solve a problem that I was actually going through myself. Part of what I do is build software and tools for different companies and clients.
With PHP being one of my most used languages for about 3 years now, It was my ideal choice for the portfolio project.
PHP is a powerful programming language used primarily for web development. Though coming with a very useful standard toolset, it gets a little hate here and there online because of its syntax.
I narrowed down the problem to database procedures since I realized that most of the PHP code I wrote at work or for side projects was database related.
And that is how I decided to build a tool to simplify this. The tool had to be easy to install, read and write. Entered PixelSequel ORM :)
THE CODE
After much thought, I decided to get started. I originally had all the code in one file but later on separated it for namespacing purposes and also for the maintainability.
The code was made up of two classes: Model and Schema, each having an interface to implement.
The model class handles all the queries involving the data directly while the schema takes care of tables. This process took about 2 weeks due to the much debugging that was needed.
DEPLOYMENT
The package is available as a composer package. Installation details are as follows
cd project-name
echo '{ "minimum-stability" : "dev" }' > composer.json
composer require astianmuchui/pixelsequel
USAGE
Once you install the package, all you need to do is require the autoload file and then import the classes but as namespaces
use PixelSequel\Model\Model;
new Model (
dbname: 'pixel_sequel',
username: 'root',
password: '',
dbhost: 'localhost'
);
The syntax is meant to be elegant and easy to read. The full usage can be found at https://github.com/astianmuchui/PixelSequel/wiki
Working on this project gave me the confidence I needed to build one of my dream projects, A Backend framework. It is also the first open source project I have started in my career and I am happy to share it with the world.
To contribute, just clone this repository
https://github.com/astianmuchui/PixelSequel
Once I was done with the project, I built a landing page for it at https://astianmuchui.github.io/PixelSequel/home/
I am Sebastian Muchui, A software and hardware developer. I develop web applications, firmware for microcontrollers, prototype circuits and much more. My goal is to build solutions for the modern world with my skills.
Here are my details
https://astianmuchui.github.io/
https://linkedin.com/in/astianmuchui
I would like to say thank you. This appreciation is not only to those who supported me on this project, it is for everyone who has followed me until the end. Special shout out to Sophia and Winnie for all the feedback and encouragement, To Clarian for helping me deploy.
I am grateful for this ALX journey, I can say without a doubt that every piece of this broken road, every splinter on this upwards ladder has been 100% unequivocally worth it.
You never know what’s next, Wait for it :)