Some quick history
Back when I was doing my web development diploma program, I had a final project for one of my courses, the purpose of it was to work with another student in a different program stream to build a "social media" application using Laravel.
This was back in 2017 and I teamed with a good friend of mine who ended up taking the database analytics program stream.
The requirements were basically as followed:
- You must be able to sign up for an account and get an activation email
- You must be able to post "images" to the website
- You need to implement a special setting that was approved by the teacher (in our case 2 factor auth)
- You must have different roles and have a way to assign roles to accounts
- You must have a way to switch themes on the website.
- You must have comment support
Development took just over three weeks to complete, while I was working on the back-end and some of the front-end, my colleague was working on hooking the site up to the back-end database and helping with testing and other sides of the development.
I sadly don't remember the mark we got for the final project, but I think it was between 90 and 100%.
Features of the site
Now that we're done with the history, it's time to talk about the features.
First off, when you sign up for an account on this app, it sends you an email.
It uses an SendGrid API key (which I'm still shocked that it's still active all these years later) to send out the email through SendGrid's email service.
If you had an admin account, you could view the users table
You could even modify a user, set their username, email, password and even their roles.
If you had the theme role, you could manage the themes on the website.
(A bootstrap 3 theme, that should really date this project)
Next we have the home dashboard
On here, you could toggle 2 factor authentication, which would simply send a one-time login code to the email associated with the account.
Finally you have the page for publishing a post
Simply put, you just needed to provide a post title, and a URL to image, and PHP would do a curl check to make sure the link was actually an image before allowing you to post it.
Despite this site looking really basic, it was a lot of work and I look fondly back on it. It took teamwork and quite a few hours to get it working but it was worth it in the end.
Getting this spun up again took a few hours but it still works to this day and I might have some plans for upgrading it in the future.