AMET | An online market place

AMET | An online market place

My Portfolio project @ALX Africa SWE Program

AMET is a virtual marketplace that I developed as part of my coursework at Addis Ababa University for an e-commerce class. Initially, I created a business plan outlining the concept. However, when the opportunity arose for my portfolio project, I decided to transform the plan into a functional website. The website serves as an online marketplace similar to Amazon and eBay, allowing users to conveniently purchase products of their choice from the platform. In essence, it aims to provide an ideal online shopping experience.

I undertook this project independently, assuming full responsibility for all aspects of the work. While collaborating with a team can bring valuable benefits, I did not have the opportunity to engage in team work due to time constraints. As a result, I chose to proceed with the project as a solo endeavor.

AMET is an inclusive online marketplace that caters to all Ethiopians, including those who have limited access to the digital world. Originally, when I developed the business plan for my Ecommerce course, I did not envision turning it into an actual website through coding. However, I took the initiative to bring AMET to life on the internet, and now it is a fully functional website. Seeing it live online has sparked the idea that perhaps it has the potential to evolve into a real-world e-commerce company. While this is still uncertain, it's an intriguing possibility worth considering.

Story

I experience a strong sense of enthusiasm when I observe Western countries effortlessly engaging in online commerce while we continue to face challenges with accessing reliable high-speed internet connections. On occasion, I find myself contemplating what actions I would take if I were in a position of leadership in my country. Would I become a patriotic leader akin to Thomas Sankara? However, I quickly remind myself that I am not a politician but a software engineer. I believe that I can bring about meaningful change in my country by leveraging my software engineering expertise, rather than through political means. This sentiment frequently resonates with me.

I conceived the idea of AMET and it brought me great joy. Despite not having extensive personal experience with online shopping platforms, I have always held a fascination for them. Motivated by curiosity, I decided to delve into the development process and began coding AMET. Currently, I have successfully implemented several features and have deployed the website on my server, generously provided by ALX. I am determined to continue working on this project and have full confidence that I will transform it into a fully functional and comprehensive e-commerce site in the near future.

Accomplishments

In the development process of the website, I utilized HTML to code the frontend, incorporating Jinja templates to seamlessly integrate it with the backend. To enhance the visual appeal of the website, I employed CSS, while Bootstrap enabled me to ensure its responsiveness across various devices. For the backend functionality, I implemented Python using the Flask web framework. The backend is responsible for tasks such as retrieving data from the fakestore's API, storing user information in Firebase's database, retrieving stored information as needed, and managing user account creation, among other functionalities.

Features

  • Authentication: Users can Authenticate using their email and password on the website with the help of Firebase and their data is stored in the Firebase database.

  • Product Listing: The website lists products by their category by retrieving it from Fakestore's API.

  • Responsiveness: I have used Bootstrap to make the website responsive. Users can access the website from mobile and also from the desktop.

These are the features that are currently implemented into the webiste. I am going to implement more features Like add to cart etc in the future.

Technical Challenges

Initially, my plan was to create the website database to store product and user data. However, I encountered difficulties and was unable to accomplish this task. As a result, I made the decision to utilize the Fakestore API to retrieve product data instead. Fortunately, integrating this API was relatively quick and straightforward.

However, I faced challenges when it came to presenting the retrieved data in an attractive manner using HTML and CSS. Formatting and styling the data to achieve the desired visual appeal proved to be quite difficult. Additionally, ensuring that the presentation remained responsive across different devices proved to be a significant hassle. I'm uncertain as to the exact reasons why these aspects were particularly challenging.

Furthermore, implementing the authentication feature with its various checks such as password validation, length verification, and email existence validation was an arduous task for me. Despite writing the code and running it with hopes of smooth execution, I encountered persistent errors that were quite demotivating. However, I persevered and made consistent efforts until I finally achieved success.

Moreover, deploying the website to the server proved to be challenging. Although we had previously learned about server configuration, the actual deployment process in a real-world scenario presented complications. Nevertheless, I managed to find a solution and successfully deployed the website, making it accessible and live on the internet.

I have learned

Through this project, I have gained a wealth of knowledge and a deep understanding of what goes on behind a functioning website. By developing and deploying my own website, I have gained firsthand experience in the intricacies of web development. Initially, I attempted to deploy my website using Apache, but I found it to be complex and difficult to maintain. As a result, I quickly switched to NGINX and discovered that it offered a better solution.

Working on this project has taught me that coding can be all-consuming, often blurring the sense of time. There have been instances where I started coding after breakfast, only to realize that lunchtime had already passed, leaving me hungry as a university student reliant on campus cafeterias. It highlighted the importance of managing time effectively to ensure necessary breaks and meals.

This project has influenced my decision to specialize in backend development. I found frontend development relatively straightforward and something I could continue learning independently. As a future software engineer, I now possess a deeper understanding of the underlying workings of software, not only due to this project but also thanks to the knowledge gained throughout my nine months of foundational education.

About me

I am Bikila Ketema, a prospective Software Engineer currently in my third year of studying Business Administration and Information Systems at Addis Ababa University, specifically in the School of Commerce and freelance graphics designer.

Click to view AMET's source code on Github

Click to view the deployed website

Click to see the projects Landing page

Link to my Linked in profile

Thank you for your time, Have a nice time!