Twitter Clone, My portfolio project

Twitter Clone, My portfolio project

Table of contents

No heading

No headings in the article.

On the journey to mastering the art of Software Engineering at ALX SE, everyone is required at the end of their eight-month foundation program to come up with a project of their interest, build it and make it their portfolio project. It is to this task that my teammate and I decided to build a clone of our favorite social media app X, formerly Twitter. A social tool where people could meet up and interact in the comfort of their home/location.

My team comprised two Software Engineering students, Faith Nyaberi and I, Abiollagh James. Faith throughout her studies had developed an interest and advanced knowledge in Front-end technologies like HTML5, CSS and JavaScript. Therefore, she was tasked with the development of the web app's front end and indeed her skills manifested when our project came to life, Cheers to her. On the other hand, I was tasked with handling the back end using the Flask framework to ensure perfect routing, database set up and communication with the front end and rendering of the beautifully designed front end.

Now I am an avid user of Twitter, and I have always been fascinated with the technologies behind it. Throughout my journey in software engineering, my curiosity has always delved into the workings of this beautiful platform. It was not until I met Faith that I realized we shared the same curiosity. That is when upon checking and putting along some consideration, we decided to build a Twitter clone.

Since we lack the expertise of senior and experienced developers, we decided not to clone the entire application, but to choose the main and most fascinating features for us to implement. The technologies we implored were as follows;

For the front end, we used HTML5 for the structure of the platform in general, and CSS5 for design, look and styling, We also included some Bootstrap5 libraries to aid and ease the styling aspect of our Web application. We then saw it as good to add some functionalities and behavior to our application using JavaScript. The only back-end technology we implored was Flask, a Python framework for web development. This was so because of its lightweight nature, ease of use and understanding and finally, it was the only back-end framework we were familiar with.

Our website is responsive and compatible with both large and small devices, Upon logging in, on the main page, Users can create posts, comment on already existing posts, like posts and delete their posts, Just like on the real Twitter platform.

As much as we loved to work on this project, it does not mean we did not encounter fallbacks. Some of the challenges we encountered were as follows; Responsiveness of our application to devices of various sizes, Deployment of our application, which became a major problem as the platform we were using, render.com, did not offer all the features we wanted and therefore we had to subscribe to their monthly stipends to acquire admin features to manage our application even more. We also encountered problems implementing the comment section since we wanted users to be able to click the comment button and the textarea pop up on the screen, They type their comment and upon pressing Enter, the comment gets posted. This became a major issue that took days to finally understand.

This project became an eye opener to us since it made us realize the power of collaboration tools, It also helped us understand the power of VS Code Editor, the fact that it allows us to install extensions needed for our application to run. Because of this project, I have learned a lot about frameworks, Flask to be specific and I am full of pride to say that I am fully equipped with the knowledge required to work with the Flask framework. I have realized how resilient and orderly I am because of how I planned to work on this project to achieve my goals and objectives, I am more motivated than ever to continue pursuing this field of engineering forever.

To check out our project and test it out, to reach out to me personally, you can check me out on GitHub and LinkedIn. You can also check out our project deployed project on X-Clone and the codes on X-Clone. Contribute to the codes if possible and tell us what to improve on, We are ready to learn and take up new challenges.