App Development (Flask Application Framework)
- XiuJia Lim
- Jul 8, 2020
- 4 min read
Updated: Dec 13, 2020
This is the first web application project that I had to build as a team. The application framework for this project is Flask and the web application is coded in Python. The web application was built entirely by my team consisting of me and 4 other members.

Our first task was to distribute the roles to play in the creation of the web application as well as to construct the wire-frame of our website for our proposal presentation. As the team leader, I wasted no time and kick-started our first meeting. During the first meeting, we discussed and listed down the potential ideas/features that we are able to develop with our own abilities and soon after, we planned on how we were going to split the parts among each other. each select a distinct management system/role and responsibility to play in building the web application.
The plan was that we each focus on our own management system and pages required for our areas and whereas the responsibility of the remaining areas such as the Home page, Navigation bar, Footer, the Color Scheme and Design of our website were shared.

Without any delay, I started off with creating the general layout of the wire-frame which consisted of the navigation bar, body of the website and lastly, the footer. By creating the layout first, I am able to standardize our wire-frames and thus, saving the trouble to adjust each of them.

We then proceed on to create each of our frames. Although our wire-frames were not that fantastic looking or picturesque as compared to our finalized website, it brings attention to how we are able to come up with ideas resulting in changes as we progress in our project.
In the weeks of developing the web application, I constantly keep track of each member's progress and to ensure that they were all progressing well in a regular pace. Often, when they run into problems that they are unable to handle, as I was one of the better programmers in the team, I would lend them a hand in debugging/solving when requested.
I was in charge of the Order management, which connects to both the Product and Delivery management. At that point of time, I had troubles developing my Order system as I have difficulty constructing my Order system without the Product system being ready. However, I managed to push on and use hard-coded data to test and create my system.
As I was in charge of the Order management, I had to figure out how my data had to be stored so as to allow each of the customers and orders to not have conflicts and how the items in the order relate with the product system. Back then, we had to utilize Shelve to implement a persistent storage so the way the objects are stored in the shelves are similar to storing them in a dictionary.

Unlike the others, I had an additional system to store and retrieve the addresses that the user had previously used. This allows the user to be able to fill up the address in the form with just a simple click on the button.


Apart from that, I had also implemented the invoice such that they can be viewed as PDF and as well download them. I had to build the invoice layout in PDF from scratch with hard-codes and a route for the PDF to be constructed for every order that was made.
After weeks of strenuous effort, it was time for the final presentation. (The proposal presentation was simply just about ours ideas and our wire-frame)

There were 2 tutors judging us during the presentation. Both of which were well pleased by our presentation and our final product. They were particularly contented by my portion of the web application. The overall verdict of our web application was on-par and even beyond what others did, although it could have been better if our capabilities and time had allowed us to implement other features to web application.
One of the feature that they were pleased with in my portion was the transfer of Guest cart to User cart. The web application allowed the users to shop and add items to their cart before being prompt to sign in when checking out their cart. What I did to make this work is that, when they were to register or login, the route will detect if the guest cart contains items. If it contains items, it will then retrieve the items and shift them into the User's cart before redirecting them to pay at the checkout. The other features were those that I had mentioned earlier, the Address system and PDF.
As my presentation was well perceived by the 2 tutors, I was invited to present at the Outstanding Project Presentation which was held 2 days after my presentation day. It was meant for us to showcase our part of the presentation to a panel of tutors and other Outstanding students. The objective of the presentation was to first of all, to let other Outstanding students to learn about your features and what are the features that others didn't have. Secondly, the presentation contains students that are potentially capable of receiving distinction for the module, hence, it was also meant for the tutors to select the top few of the Outstanding students to receive distinction for the project. At the end of all this, I managed to secure distinction for both the project and the module.
Commentaires