This was an online food ordering application for which I worked as a dedicated developer for over 1.5 years, and I remained there until the project was completed. This project included four developers, two of them were backend developers (including myself) and the other two were frontend developers. The React-Native mobile app included this frontend.
I was the lead backend developer on this project, which was based on the agile methodology, thus we held scrum calls with the customer every day and provided him with regular updates. Later on, I was also planning the weekly sprint along with creating Task-based Tickets in JIRA, as well as assigning a few tasks to my colleague developer. Furthermore, I was constantly examining the code standard. As a Lead Developer, I created the Database Architecture from scratch based on the functionalities that were required. I was making sure that the database query in Django ORM is completely optimized so that there is no additional data load time.
There were three sub-apps in this project: Merchant (restaurant), Driver, and Customer. we created the APIs using the Django REST Framework and PostgreSQL as the database. There were advanced features such as scheduled food orders for later, discounts and deals, real-time delivery guy location tracking, and the ability to repeat your purchase on a daily, weekly, or monthly basis. We implemented the STRIPE payment gateway for payments.
All of the APIs were created in accordance with the REST standard, and we also included the SWAGGER for API documentation. Apart from that, the database was well-managed, and advanced concepts such as indexing and caching were used to retrieve data efficiently.
Moreover, we created APIs for the client's Admin Panel, which allows the client to easily handle CRUD operations and managed data. There was also an advanced custom reporting function. The Admin Panel was built in ReactJS.
Because I am skilled in DevOps, I deployed the Backend code to the server. We used AWS cloud for it, including ec2, RDS (aurora PostgreSQL database), S3 for media data and invoices, and so on. I also configured the Elastic Load Balancer to ensure that the app is available 24 hours a day, seven days a week.
Tech Stack: - Django, Django REST Framework, Swagger, PostgreSQL, Stripe Payment Gateway, JIRA, AWS (ec2, RDS, and s3), GitHub