ABOUT
T. Michel
Malagasy, English & French
Dear headhunters, welcome to my website. This plateform is designed to showcase my web developement skills in all its various spectrums. I'm a Self-taught Web Developer with over a good 24 months worth of experiences, meaning almost 24/7 in front of the computer trying to absorb, experiment & practice as much as I possibly can. No day off basically within the last 20 months at least and as we all know, this field is an endless learning process ... . During those times, I focused at first as any beginners will, on HTML5, CSS3, Vanilla Javascript. Then slowly gravitated toward Node.js, MySQL, Linux Server ... . From the beginning, my goal has always been to be a full stack web developer. The longing of knowing the logical parts of the server-side of web development hunted me for the longest time, which then I used as a mental fuel to motivate & push myself every single day to acquire more skillsets, more knowledges, more progresses heading to a complete, better overall, well accomplished Web Developer ...
Tools & Environment
- 🎧 🎵
- Inspiration
- Focus
- Purpose
Typical Vibes
God Bless Africa β
Multiple ways of programming styles encountered along my learning journeys are Object Oriented Programming in Javascript a.k.a OOP Javascript, Functional Programming & the design pattern Models Views Controllers a.k.a MVC. CSS Grid & Flexbox are my gold standards in building layouts. I care about good practices & clean code. When building a project from scratch, I usually start with mobile version first, then incrementally scope the screen width's with media queries. Very mindful of redundancy.
I took a look at reactJS, PHP & framework Laravel for curiosity ... I'm open to the idea of learning them if needed in a very short period of time ..., Java & Spring Boot are parts of my future targets.
The reason I focused on Node.js as opposed to PHP or any other programming languages is purely due to the abondance of resources related to server side javascript online & being able to dive deep into a concept like cookie, password hashing, authentication, pagination, form input, FormData, search input, CRUD operations, ES6 Class with abstract concepts such (Encaspulation, Enheritance, static method, private & public method or property, methods chaining, ...), fuctionnal programming with prototypes, cors, Node.js file system, ... Ability to distinguish client & server sides javascript ...
Github history doesn't mean no activities related ..., a lot of my development processes took place locally and weren't uploaded to a github repository ... despite a non-stop focus on coding 24/7 and projects which are pushed stay on a private repository ...
TECH STACK USED
#HTML5 #CSS3 #NodeJS #NodeJS Packages: express, ejs, bcrypt.js, dotenv, mysql2, pm2, cookie-parser, jsonwebtoken, sass, nodemon, nodemailer, ... #MySQL #Vanilla Javascript #ES6+ #Ubuntu Linux Server: SSH, RSYNC, SCP ... #NGINX: Load Balancing, Reverse Proxy ... #Git & GitHub #MVC Framework #OOP javascript #Digital Ocean Droplet #Docker#RegExp
Strive For Greatness
- Having a design idea
- Drawing it into a sheet of paper or a dedicated design software in order to not lose sight of the details
- Imagining & Assessing the multitude of technologies combined to achieve the functionalities desired
- Listing all possible technology stacks at the reach of the team's skillsets
- Defining every steps needed from start to finish
- Accomplishing one task at a time, laying a brick one by one
- Setting a reasonable deadline for each steps
- Adding any ideas that come along the process while building the project if it brings improvement
- Having a good snack always helps ... . All jokes aside, a well balanced diet is key to our overall well-being & sharpenes our ability to focus, especially while coding through an entire day which a typical web developer usually does ...
-
"
Numerous features are implemented, starting with the ability to log in & out for privileged pre-registered administrators. This landing page is purposefully created as mentioned at the beginning, as an introduction to my portfolios, while itself being part of it.
-
"
Once logged in, an administrator is greeted with a restricted access dashboard page, populated with various exclusive links only accessible by a successful user session after a thorough middleware checkpoints related to cookie validity. Such cookie is generated at a successful sign in or sign up instances.
-
"
One key feature I had to make is the ability to count publicly accessible pages' visits. My implementation of it, originated from capturing each possible "GET" request instances initiated from the browser side and take advantage with the momentum to insert or simply update row of records in a given table on the connected database. The logic would intail adding a numeric value 1 per instance and find a way to organize and consume those accumulated datas in an interactive fashion from the dashboard page after retrieval. SQL queries used in various ways to output different perspectives such total overall view counts for each unrestricted page slug, total daily views, and a record of time of when each visited pages took place.
-
"
Client side users are able to submit text messages with limited characters. Speaking of restricted characters allowance, regular expression has been included on every input forms possible ... for good practice and security reasons.
-
"
Regarding my coding practices to accomplish queries to the database, Async-Await & OOP Javascript are my choosen tools for personnal convinience, although it is also well recommended ... . And obviously we also fetch from an API endpoint in a JSON format, to then include those retrieved datas into my pages. Template engine used: EJS (personnal taste)