A review: my first django app (AnyWork)

Jubriltayo
4 min readSep 10, 2023

--

The best way to learn how to code is through building projects. Indeed no truer words have been said. After embarking on a long and arduous learning journey, It was time for me to build a portfolio project to bring into life what I’ve learnt in the past couple of months.

birth of idea

An e-commerce web app is one of the most common web app to build. However, most are focused on commercialization of physical products only and very little put their services up for sale. Examples of such well known e-commerce web apps are amazon, ebay, jumia, konga, etc. I decided to build a platform where professionals can register on the app and users can hire these professionals on-site. As a software engineer, I wanted to create an experience that would be both web and mobile-friendly.

We all need each other. We have people who need these services and we have people ready to offer them. All that is left is to bridge that gap and connect both parties. With this in mind, I decided to focus on this project to enable clients order for services easily as they would a pizza.

AnyWork web app

AnyWork works like freelancing websites such as fiverr, upwork, etc. However services will be rendered on-site(in-person) unlike the aforementioned sites where services are offered online. As a result allows service to be delivered in one’s preferred location. At the MVP stage, there are 4 services available for now namely: transportation, cleaning, tutorship, and food.

Technology and Architecture

Anywork is a highly scalable web app as it has the propensity to be a hub for common services such as taxify, uber, tuteria, and many more. For the Backend, django(Python framework) was preferred due to the scalability of this project. Bootstrap was used for the Frontend and a postgreSQL database for storage.

The website is responsive and compatible with mobile. This means users can access the project from a mobile view.

Web Architecture

Challenges

It was indeed a worthwhile experience as I encountered a lot of issues that needed fixing.

Being a first time django user, I wanted to group professionals into separate service categories. In a quest to achieve this I encountered a challenge in querying objects from the database, filtering them and rendering them dynamically. This made me modify the filter() function to capitalize the object query (url) to match the name in the model’s options service category before rendering.

Another challenge I faced which was probably the most challenging one yet was when I was laden with was a constant “build failed” due to a “NoModuleFoundError” during the deployment of the project from deployment environment to a production environment. Through research, I was able to overcome this problem by the inclusion of necessary modules and third party apps used in the “requirement.txt” of the web application.

Initially, it was quite challenging for me to integrate modules (third party apps — such as bootstrap5, fontawesome free, etc), images, css and js files into django as it failed to load images or any of my stylings. It turns out adequate knowledge of jinja templates and static loading of files was essential.

Wins

This project illuminated my scope to different technologies and possible projects I can build with them. The Django framework makes routing and multiple creation of web pages and use of third-party apps very easy. There is also easy integration between the default sqlite database in the deployment environment and PostgreSQL database in the production environment.

Deploying this project gave me a deeper understanding on deployment of apps on host server

Bugs are indeed a software engineer’s friend. I have indeed learnt a lot from the issue that arose and how to fix them.

In general, this project has greatly improved my Frontend, Backend and Database management skills, which is crucial to being a full stack developer.

About Me

My name is Tayo Jubril, and I aspire to be a full stack developer. I have a BSc in Chemistry and a Masters degree in Analytical Chemistry. I am also an editor and currently a student of ALx Software Engineering Programme. I am motivated by creating solutions to societal problems.

Github Repository

Project Page

Landing Page

LinkedIn Profile

--

--