HeaderSIS.jpg

Team eNable - Final Wiki

From IS480
Jump to navigation Jump to search

Project Progress Summary

As we are already approaching the end of our Project for FDS, our team has done everything we were determined to do since the beginning of the project and most importantly, every single thing our client expected from us. During these 2 months, we did 2 more UATs and one User Study which will be further elaborated in Testing section.

Project Highlights

An unexpected change in requirement took place during this stage. After our second UAT with the client, the client wanted the characters initially involved in the system and their roles to be changed.
At first, our system has "Admin" who will oversee the overall application and "Sellers" who will upload and sell their own products. But after that test, the client, in consideration of better privacy and efficiency issues, wanted us to modify in a way where "Admin" became "Top Admin" with the role unchanged, "Seller" became "Admin Assistant" who will be assisting the "Top Admin" in some administrative matters and uploading products made by "Artist", a new character of the story.
This was the biggest and the most significant change made by the client throughout the project. This change took us quite a while as we had to add in more features to the existing solution to make it work in the exact way the client wanted.

Project Challenges

The biggest challenge our team has faced throughout this project is the lack of details in business requirements. For every general requirement the client wanted in the application, we had to think of every possible solution for that as the requirements were not specifically stated.
Despite that, we could give an end product that satisfied the client and the disabled friends as we always made sure what we had was what they required and what was needed to add in to that to best suit the clients' expectation by performing regular UATs with FDS.

Project Achievements

The use of SCRUM framework has helped us a lot in achieving our project goals. Sprint Planning Meetings at the beginning of each sprint were a great help as we could have a proper planning on what tasks should be done during the particular sprint, who would take charge of the particular task and how much time should be allocated for that task. This allowed us more flexibility while reducing a lot of inefficiency. Similarly, Sprint Review Meetings at the end of each sprint also helped us in making sure that we had completed the sprint successfully and as planned.

We could implement the Artist Profile, one of the most important features of our application, with fewest possible challenges by making use of Ajax. Now, the Top Admin or the Admin Assistant will not need to type in the profile of the artist every time they add in a new product. They can just type in the first few characters of the Artist's name and all the suggestions will be shown. As they choose one Artist from the suggestion list, the photo of the Artist and Profile will be auto generated and shown on the product page of the storefront.

Project Management

Project Schedule

Iteration Functional Requirement Planned End Date Actual End Date Comments
8 Customer Relationship Management 3 Oct 9 Oct As we all were still influenced by midterm workloads, we started this iteration pretty late
Tell Friends/A Friend 7 Oct 7 Oct As per planned
9 Report Generation 9 Oct 13 Oct It took Erene quite a long time to get familarize with the logic of report generation
10 Shipping Module 13 Oct 20 Oct Actually, we had pushed this function back to this iteration as we had already run out of time to start working on it in teration 9
UAT 2 2 Nov 25 Oct We decided to have a UAT focusing on the complete application (excluding the additional factors) and so, had the test earlier in iteration 10 than planned
Implementing Additional Factors 30 Oct 30 Oct As per planned
11 User Study (Additional Test) - 10 Nov -
UAT 3 (Additional Test) - 13 Nov -
12 Preparation for final presentation 22 Nov 22 Nov As per planned

Project Metrics

We are using two metrics for our project: Schedule Metric and Bug Metric.

After the Midterm Presentation, our Schedule Metric shows that we can finish all of the tasks according to plan in each iteration except in iteration 9. In iteration 9, we started the new function called "Report Generation". Sine it was the first time for us to generate report in PDF format, we needed a lot of time to do the research which in turn delayed our developing process for that function.

Our Bug Metric shows that we had only level 1 bugs which are mostly UI related bugs in most iterations except in iteration 12. During iteration 12 while we were doing our final testing, we had found out the bug in "Updating Address" function which showed the database error when the user updated the address. However, we could manage to fix that bug before the final presentation.

Detailed Calculation Methods and Action Plans for each metric can be seen here.

Project Risks

Risks Likelihood Impact Risk Level Mitigation Plans
Look and feel of the application does not meet the end users’ needs Low Moderate Low Perform UAT with the real end users and gather feedback to ensure a design that appeals to them
Maintenance of the system by the client Low Low Low Schedule some trainings for the client/admin of the system at the end of the project

Technical Complexity

AJAX auto-population of fields

Using AJAX technologies, we help increase the efficiency and decrease error when entering artist information. When the top admin / admin assistant enter the artist name, auto-suggestion using name's already in the database will be done. This increase their efficiency when they have to enter another product by the same artist as it reduce time to enter the same artist information again. And it decrease repeated artist information in the database.

It is complex as AJAX is completely new to most of the team members and it took a while for us to realise that it is done using AJAX even though we've seen something similar done in places such as Facebook's search function

PDF Generation

Done with the help of TCPDF, PDF files can now be generated for our reports. This will help the client when they need to archive their statistics or whenever it is needed to be produced.

As OpenCart does not have PDF generation module, we have to start from scratch in terms of researching the available solutions, how to plug it into OpenCart, how to use it to generate the report as we want it to be.

Quality of Product

Product Deliverables

System Design Document

Click here to view the Design Document (Final) in full

As-Is Functions Modified Functions New Functions
Customer

Log in/log out
-Customers can log in/out.

Register
-New customers can register an account. Note: only minor form field edits were made to the original OpenCart.

Search/Filter Products
-Customers can search for a certain product.

View Order History
-Customers can check their order history and the order status of purchased items.

Manage Account
-customers can edit their account details, such as passwords and addresses.

Customer

Manage Shopping Cart
-Customers can add, update and remove items from the cart. An easy remove button and an empty cart button have been added. Columns have been re-arranged for a better appearance and usability. Also, if the product is out not available in the desired quantity, the quantity remaining is now shown.

Check Out - Payment
-Customers can choose the type of payment. PayPal payment customized to FDS’ needs was added.

Customer

View Products - View Artist Profile
-In order to shed some light on the artists who created the handicrafts, an artist tab has been added on the product page. It has the artist picture, name and a short write up about the artist. There is also an option to see more products from the same artist.

View Products - Share via Facebook, Twitter & email
-Customers can share a product they like with their friends. They can choose to post a link on their Facebook wall, Tweet to their Twitter followers or email to a friend about the product they found.

Check Out - Shipping/Pickup Method
-Customer can choose the type of shipping/pick-up method they want when ordering a product. To suit FDS’ needs, a new type of editable shipping/pickup method was implemented.

Donate
-Anyone can donate to the organisation. A new donation sidebar box was created and a donation page to go with it.

System - Send reminders/notifications/Birthday wishes/newsletters
-The system sends email reminders, notifications, birthday wishes.

Admin Assistant

Log in/log out
-Users can log in/out.

Manage Orders
-Users can view and modify customer orders

View Reports - Sales
-View the sales report

Admin Assistant

Manage Products
-Users can view and edit/add products. Adding products has been simplified by removing unnecessary fields and tabs while moving the main information needed to the first tab.

Manage Products - Manage Discounts
-Users can add or remove discounts to a product. OpenCart only supports one type of discount. This has been modified to support two types of discounts needed by FDS.

View Report – Products Viewed
-Users can view a report on the products viewed. This has been modified by adding filters for category and artist

Manage Account
-Users can edit their account details, such as usernames and passwords. Modified some fields to suit FDS’ needs.

Admin Assistant

Manage Products - Edit Artist Profile
-Users can add/edit information about the artist when adding a product.

View Reports - Generate PDF
-Users can now generate the reports into a PDF for printing.

Top Admin

Log in/log out
-Admin can log in/out.

Manage Orders
-Admin can view and modify customer orders

Manage Categories
-Admin can create or modify categories

View Reports - Sales
-View the sales report

Top Admin

Manage Products
-Admin can view and edit/add products. Adding products has been simplified by removing unnecessary fields and tabs while moving the main information needed to the first tab.

Manage Products - Manage Discounts
-Admin can add or remove discounts to a product. OpenCart only supports one type of discount. This has been modified to support two types of discounts needed by FDS.

View Report - Products Purchased
-Admin can view a report on the purchased products. This has been modified by adding filters for category and artist

View Report – Products Viewed
-Admin can view a report on the products viewed. This has been modified by adding filters for category and artist

Manage Account
-Admin can edit his/her account details, such as username and password. Modified some fields to suit FDS’ needs.

Manage Store - Edit Featured Box
-Admin can choose what products to feature in the “featured” sidebar box. Modified the product selection method to a check box selection, which is more straightforward than the original OpenCart version. Also, discounted items are now automatically checked.

Top Admin

Manage Products - Edit Artist Profile
-Admin can add/edit information about the artist when adding a product.

View Reports – Donation
-Admin can view the donations made to FDS.

View Reports - Generate PDF
-Admin can now generate the reports into a PDF for printing.

Manage Customers - Manage Birthday Discounts
-Admin can change the birthday discount percentage and the effective days of the discount.

Manage Customers - Manage Email Reminder
-Admin can set the numbers of days till the system automatically sends an email reminder to a customer who hasn’t logged in for a while.

Manage Store - Edit Donation Box
-Admin can tweak the donation box (picture and text), enable/disable it or change box position.

Manage Store - Manage Shipping Method
-Admin can set the delivery/pick-up methods along with their prices. To suit FDS’ needs, a new type of editable shipping/pickup method was implemented.

Quality

Since we are using Opencart, we don’t need to design the architecture of the system. Opencart uses MVC structure with language layer added so it is very easy to change a String of sentence in the codes as well as to make the system multi-lingual.

eNable

Performance is also another reason that we choose Opencart over other off-the-shelf open-source e-commerce systems. We tested 3-4 e-commerce systems before we made final decision and Opencart stands out in terms of efficiency.

Deployment

The deployment process is the same as that described in the Midterm Wiki Page. We built a mobile version of the system interface so we also have to upload and deploy mobile interface codes in addition to what we have before midterm. The deployment of the mobile interface codes was a bit tricky because of the directory structure of Opencart and the host server of the system. The directory structure of Opencart and the way it links the files make the mobile interface impossible to use the folder from the full version for some common files and resources. So we decided to use symbolic links technique and linked the folders of the full version to the folders of mobile version. The lacking SSH permission on the host server made us unable to create symlinks but we managed to solve the problem by running the symlink creation commands as cron jobs in cPanel. If the users access the URL (http://shop.fds.org.sg/) from mobile devices, they will be automatically redirected to the mobile version which has a URL http://shop.fds.org.sg/mobile/.

Testing

UAT 2 with client
Testers - Client
Location - SMU
Duration - 3 hours 15 minutes
We had our second UAT after we have come up with a complete e-Commerce system. Compared to UAT 1's feedback, this second one is really satisfying to the client as well as to us. There was only a couple of very minor neutral comments on the application and the client was very pleased with the improved UI and simplified admin tasks.

User Study with SMU students
Testers - SMU students
Location - NA (Survey link was sent out to 50 friends via email)
No of Responses - 28
This study was not planned in the initial schedule but we felt that it is crucial for us to know how customers might react to the look and feel of the site. And we think we did the right think by conducting this study as we got a lot of constructive and interesting feedback that are useful for both the project owner and us.

UAT 3 with client
Testers - Client
Location - SMU
Duration - 3 hours
We must say this last test made us more confident about the usability of our end product for our client and the organization FDS.

You can compare all those UAT results here.

Reflection

Individual Reflections

Erene Ong Yiling

It has been a steep learning curve for me. Being the only local in the team is a huge challenge for me as i have to get out of my comfort zone to deal with adjustment i had to made to fit in. But i thank my mates for making the process, even though really hard at first, a process that can be considered successful.
The last time i worked with PHP on such a scale happens to be my last FYP back in poly. In fact, this is a MUCH larger scale that my poly project. So i picked up more competency with regards to PHP. It's also been enriching for me to pick up how to generate PDF files.
My biggest takeaway, however, has to be how to do a project in the perspective of the client. I have to learn how to develop such that it will be useful to them. It is very easy to go through the motion and just complete the project but our team took a BIG effort to ensure it works and I think i have to commend my team for that.

Khine Tharaphe Din

Since from the very first week of the project, I focused mostly on Project Management and part of the User Interface design. Throughout this project, I have learned how important it is to manage a project to be in a timely manner and to have some transparency between the client and the team. There were times we came up with an idea that we thought was better and more attractive after putting in a lot of efforts; however, when the client was more attracted to the simple one we implemented before, the later product usually became useless. So, I have learned that being technically complex does not always mean it is the best solution. Maybe, for the client, simple is good. Then, all we have to do is to change our perspectives to the client's and adapt to them to have a product that best suits the end user.
Overall, I am sure FYP has been a wonderful learning experience for me in terms of both academic enhancement and dealing with real-life client.

Kyaw Zin Hein

Throughout this project, I have learned a lot of things in hard skills and soft skills. As a hard skill, I have learned how to develop the e-commerce system with PHP programming language and with Opencart. Besides that, my knowledge in Database Management has been increased a lot.

As a soft skill, I have learned how to deal with the real world clients who are not familiar with IT and who do not know the specific requirements. Moreover, I have also known how we can use our IT to increase the value for the business.

All in all, this project really helped me a lot for my future career in many aspects.

Lu Mon Kyaw

As the main User Interface designer, it was my job to make sure that the website was as intuitive and simple to use as we promised when we took on the project and alod make sure that the website is attractive enough for customers. This seemed simple at first but it proved to be much harder than I thought. Often, the client would want something entirely different so we had to scratch some design ideas. For example, we had a fancy cartoonish design for a donation box at the sidebar which I spent quite some time creating but in the end the client wanted a simple, more professional looking one. So I learned that it's really important to keep the communication open and frequent between the client and us. I think overall, I'm very satisfied with what we have made. It was a new challenge taking on a big project such as this and I learned a lot about managing client's needs, thinking of every change we make to the site in a business context and creating an effective UI design.

Soe Thet Aung

This project seemed to be very easy at first which is just about customizing and simplifying off-the-shelf ecommerce system. However, I found it becoming harder and harder as the progress moved on not because it was technically very complex but because we had to think a lot about how to fulfill the business requirements by using IT solutions. Moreover, we had to deal with non-IT savvy client who had no knowledge in using and managing an ecommerce system. It turned out that the business requirements were not given by the client but we had to suggest the appropriate features and functionalities which the organization might need. So the biggest part of the project became to be thinking about what should be inside the system and how the system should work. We tried to put ourselves in client’s shoes and thought what she might need. The biggest take away for me is that we gained the ability to predict what a client may expect or request from us. If we, ourselves, become clients in the future projects, we know what we can expect or request from the developing team and what difficulties they may face in handling the requirements.

Benjamin Gan Reflection

".... The team is really patient in explaining how the system works to the disabled friends from the organization and to me. They could also exceed our expectation in terms of both the design of the system and the easiness to use the system. ...."

Go To

Main Page
Midterm Wiki