I recently quit my job and have had a lot of free time with absolutely nothing to do. So I have decided to embark on a journey of self-improvement by doing the one thing I'm sort of good at, which is writing code. So I'm going to be starting yet another side project and fingers crossed I get to finish it this time ๐ค๐ฝ.
So what is this side project going to be about? Well, I'm going to be building a little social media application called Questions. It's pretty much a cross between the popular curious cat and ask FM and to be honest I don't quite have all the features figured out, but I'll be thinking it up as I proceed. Maybe after i get it up and running I could even ask for suggestions on what features to implement via the comments.
Okay so what makes this side project different from all the others I've started ( and not completed ๐), well for this project I'm going to be journaling everything and what I mean by that is I'm going to be writing a series of articles that cover how I'm building out this project, pretty much a tutorial series anyone interested can follow along to learn how I'm doing everything.
The reasons I decided to do this are two-fold, firstly It'll help to keep me accountable, if I have to write an article series on what I'm building, I'll be more motivated to complete this project, and secondly, I want this to be a comprehensive guide anyone can follow to learn how to build a project from scratch. Hopefully, this series will help someone learn something new.
So before I proceed, here's a little disclaimer, I don't know everything and I don't claim to be an expert, some of the code I write in this project will not be the most efficient, it might not even be correct, so if you see something that can be improved or something you feel is wrong, please let me know in the comments. I'll regularly check back to update code that might be incorrect or obsolete.
With that being said, let's look at what we're going to be using to build out this project.
The first thing I'm going to be doing is building out a backend server, to do this I'm going to be using Node JS and Express with TypeScript. I know some people who know me are going to be asking me why not Java. Well to those people I say, I've been actively writing Java for the past 2 years now and I want to take a break and try something else. Plus I've never actually used TypeScript before (Sorry to all the prospective employers I told I have TypeScript experience ๐คญ) so this seems like a good opportunity to finally use it.
After the backend server is complete, I'll be building the frontend for this application and I'll be using react for this. I currently do not have a design for the frontend, but I'll cross that bridge when I get to it. If any good samaritan wants to help me design something I really don't mind ๐
I think I might be adding an accompanying android application to this application (Sorry iPhone users) if it's not too much work. I don't have a mac and I don't want to do something cross-platform, plus I love native android development with Jetpack Compose.
I feel like I should point out the fact that the article series is not going to be for absolute beginners, you should at least have some experience with any of the technologies I'll be using Javascript for the backend part, React for the frontend part and Kotlin for the mobile part. If you don't have experience in any of the above, you can still follow along in their respective parts, but it might be harder to understand everything I'm doing. I'll try to explain as best as I can, but ultimately having some prior experience will help a lot.
So that's about it, In the next article, we'll start with the backend server. If you have any features you think Questions.me should have, please let me know in the comments and if they're not too much work I'll add them ๐
Until next time ๐ & ๐ก