HeaderSIS.jpg

IS480 Team wiki: 2012T2 5 B 1 G Mid Term Wiki

From IS480
Jump to navigation Jump to search

5b1g homepage banner.png


Project Progress summary

Files download

Presentation Slides

S/N Description Link
1 Presentation Slide To Be Updated

Youtube Links

S/N Description Link
1 5B1G Acceptance Presentation Preview Link
2 5B1G Midterm Presentation Preview Link
3 5B1G Indoor Routing Link
4 5B1G Acceptance Presentation Video Link
4 5B1G with Singleton Test Link
5 5B1G Without Singleton Test Link

Project status

5B1G TimeLine.png

  • Our team has completed 7 iterations and still has 4 more iterations
  • We are currently on Iteration 8 which began on 11th February and will end on the 24th of February
  • Our next iteration(Iteration 9) will begin on the 25th of March.


Achievements

Multiple software development tools
Successfully integrated WifiSLAM into Mobile Application for indoor positioning
Successfully value-added on top of WifiSLAM by implementing straight-line indoor routing in our Mobile Application
Successfully implemented Jersey framework for Retailer Admin Dashboard (Web Application) that provides web services to Mobile Application
Successfully integrated SpagoBI into Retailer Admin Dashboard (Web Application) for Retailers via SpagoBI SDK
Successfully generated BI reports via JasperReports Engine on SpagoBI
Successfully implemented Hibernate framework for both Web Service and Retailer Admin Dashboard (Web Application) to communicate with MySQL database
Designed and Built 5 prototypes:

  • Count Me In (Mobile Application)
    • 2 low fidelity prototypes
    • 1 high fidelity prototype
  • Retailer Admin Dashboard (Web Application)
    • 1 low fidelity prototype
    • 1 high fidelity prototype

Performed 3 rounds of user testings

  • Count Me In (Mobile Application)
    • 2 user testings with 2 low fidelity paper prototypes
    • 1 user testing with 1 high fidelity working prototype
  • Retailer Admin Dashboard (Web Application)
    • 1 user testing with 1 low fidelity paper prototypes


Project Highlights

S/N Description of unexpected changes Occurrence Mitigation/Contingency plan
1 Web service API for the indoor positioning, which was promised by Live labs was delayed. Our mitigation plan is to fall back on our backup plan and proceed on with WifiSLAM as our indoor positioning system instead. Iteration 4 We had a contingency plan in the event that we are unable to utilize Live Labs indoor positioning system, we fell back on our back up plan of using WifiSLAM.
2 Unexpected delays during iteration 5 caused the delay in schedule. These delays were due to 2 reasons.

Firstly, there was a change from using android activity to using fragment. Using fragment provides more modularity and reusability. Initially, we were worried that the switch would mean that we would have to change a lot of our class files as we were using mainly using android activity. However, after careful analysis and deliberation, we realized that fragment activity is better catered to the development of our android application.

Secondly, our client proposed that we use SpagoBI as a form of Business Intelligence. The configuration of the SpagoBI was much more difficult than expected. This was coupled with the fact that there was limited help that is provided online.

Iteration 5 We decided to review the tasks for the remaining iterations. As we would be working with SpagoBI for our remaining iterations, we decided to break down the tasks further in case we encounter a similar situation as this.
3 We found out that the Android target SDK version, which we used in our application, was not compatible with mobile device with older versions of the Android Operating System (OS). Our application is able to run from Ice Cream Sandwich (API level 15) onwards Iteration 5 We placed a disclaimer on our wiki to inform our users about this problem. The information can be viewed here
4 We found out that the older versions of Android devices are not NFC enabled. Iteration 5 We placed a disclaimer on our wiki to inform our users about this problem. The information can be viewed here


Technical Complexity

In order of complexity:

S/N Complexity Description Component
1 Android Fragment
5B1G Fragment.jpg
  • About this complexity:
  • A Fragment represents a behavior or a portion of user interface in an Activity.
  • Fragments decompose application functionality and UI into reusable modules
  • Add multiple fragments to a screen to avoid switching activities
  • Fragments have their own lifecycle, state, and back stack
  • Fragments require API Level 11 or greater
  • Why is it complex?:
  • All of us are new to android development. Therefore, this increase the "steepness" of our learning curve.
  • The change from Activity to Fragment requires substantial amount of understanding of basic Android architecture and development style.


Mobile Application
2 SpagoBI and iReport to generate BI reports (JasperReports)
  • About this complexity:
  • SpagoBI contains the analytical engine to create BI reports (JasperReports) for retailers.
  • Why is it complex?:
  • SpagoBI requires configuration on the behavioral model (list of values and analytical driver) which is unique to its web application
  • Integrating SpagoBI SDK into the web application so as to use its web services to generate reports for our web application
SpagoBI SDK coding
Retailer Admin Dashboard
(Web Application)
3 WifiSLAM for indoor positioning
  • About this complexity:
  • WifiSLAM is an indoor positioning SDK which enables our mobile application to locate your indoor position under 40 seconds.
  • WifiSLAM is capable of detecting user's location to 2-3 meters of accuracy in real time.
  • Why is it complex?:
  • Mapping, specifying of region and Configuration of WifiSLAM
  • Startup of the WifiSLAM localiser could take up to 40 seconds.
  • Therefore, to mitigate this issue, we use Singleton Pattern to instantiate the WifiSLAM configuration object when the application begins loading.
  • A Singleton object allows the whole application to use only this configuration object. However, localisation of user's location will not start unless the user choose to start it.
  • In software engineering, the singleton pattern is a design pattern that restricts the instantiation of a class to one object.
  • The concept is sometimes generalized to systems that operate more efficiently when only one object exists, or that restrict the instantiation to a certain number of objects.
Mobile Application
4 Create Hibernate Project to be used as an external library for our web applications to communicate with the database
  • About this complexity:
  • Hibernate is an object-relational mapping library for Java
  • Hibernate maps object-oriented domain model to relational database
  • Why is it complex?:
  • Mapping one-to-many and many-to-one relationships in objects based on entity associations and relationships in database
  • Fetching strategy for one-to-many and many-to-one relationships
  • Using Hibernate Query Language (HQL) instead of SQL (Structured Query Language)
One-to-Many and Many-to-One relationships
Hibernate Query Language
Fetching strategy


Hibernate Project
5 Using third-party connection pool, c3p0, for Hibernate Project
  • About this complexity:
  • c3p0 is a library for making JDBC drivers "enterprise-ready" by augmenting them with functionality defined by the jdbc3 spec and the optional extensions to jdbc2
  • Connection pool is good for performance as it prevents our web applications from creating a connection each time it interact with the database, hence minimizing the cost of opening and closing connections
  • “The built-in Hibernate connection pool is in no way intended for production use. It lacks several features found on any decent connection pool.” – quoted from http://docs.jboss.org/hibernate/core/3.3/reference/en/html/tutorial.html#tutorial-firstapp-configuration
  • It resolves our problem of stale connections as MySQL timed connections out after 8 hours
  • Why is it complex?:
  • It requires the setting of c3p0 properties inside the Hibernate project
  • The "time out period" of the connections in the pool are set to 4 hours to prevent MySQL from timing them out automatically
  • The "idle test period" of the connections in the pool are set to 1 hour, which mean connection are tested hourly to prevent stale connections
C3PO configuration XML
Hibernate Project

Project Management

Tasks completed by Iteration

Chart Tasks Iteration.png

Iteration Planned Task Actual Task Completed Task Leftover Task Percentage Remarks
1 11 12 12 0 100% Nil
2 6 6 6 0 100% Nil
3 4 4 4 0 100% Wen Bin, Adrian and Celine went to Israel to complete their Business Study Mission (BSM)
4 10 10 10 0 100% Nil
5 14 22 19 3 86%
  • Change in Project Requirement from QR Code to NFC
  • Delivery of NFC tags delayed for a week
  • Spago BI technically challenging
  • Load More function challenging due to Fragments
6 23 27 25 2 93%
  • Add and delete E-coupons to and from E-coupon cart
7 18 20 20 0 100%
  • Nil


Overview of all tasks

Mobile Application

Task/Function/Features Status Confidence level Comments
View E-coupons by Category Page Fully deployed and tested 100% 1
Search E-coupons by Category Page Fully deployed and tested 100% 1
View E-coupons in Latest Page Fully deployed and tested 100% 1
View E-coupons in Personalised Page Fully deployed and tested 100% 1
View details of E-coupon Fully deployed and tested 100% 1
View E-coupons in E-coupon Cart Fully deployed and tested 100% 1
Add and delete E-coupons from and to E-coupon cart Fully deployed and tested 100% 1
Retrieve information from Facebook profiles Fully deployed and tested 100% 1
Internal/External Push Notification Fully deployed and tested 100% 1
Indoor positioning using WifiSLAM Fully deployed and tested 100% 1
Indoor routing using Dijkstra's algorithm 25% 0.9
  • Leow Chun Tat is researching on the Dijkstra's algorithm.
  • Currently able to navigation in a straight-line between 2 points
Pull to refresh E-coupons Fully deployed and tested 100% 1
Load more E-coupons Fully deployed and tested 100% 1
Integration of NFC with NFC tags (Redeem) Fully deployed and tested 100% 1
Integration with Facebook (Login/logout) Fully deployed and tested 100% 1
Facebook Integration: Login via Facebook Fully deployed and tested 100% 1
Facebook Integration: Sharing of E-coupon Fully deployed and tested 100% 1

Web Service for Mobile Application

Task/Function/Features Status Confidence level Comments
Web service to retrieve all E-coupons from shopper's E-coupon cart Fully deployed and tested 100% 1
Web service to add an E-coupon to the shopper's E-coupon cart Fully deployed and tested 100% 1
Web service to delete an E-coupon to the shopper's E-coupon cart Fully deployed and tested 100% 1
Web service to share E-coupon to shopper's Facebook Fully deployed and tested 100% 1
Web service to get image of E-coupon Fully deployed and tested 100% 1
Web service to get location of retail outlet based on E-coupon 75% 1 Waiting for the indoor routing on the Mobile Application to be completed before testing this web service
Web service to redeem E-coupon Fully deployed and tested 100% 1
Web service to get list of E-coupons by category Fully deployed and tested 100% 1
web service to get list of latest E-coupons Fully deployed and tested 100% 1
web service to get list of personalised E-coupons Fully deployed and tested 100% 1
Web service to validate a shopper's login via Facebook Fully deployed and tested 100% 1
Business analytics (predictive analytics) to recommend E-coupons to shoppers 25% 0.7 Adrian Lee is researching on the collaborative filtering technique.

Retailer Admin Dashboard (Web Application)

Task/Function/Features Status Confidence level Comments
Retailer login and logout Fully deployed and tested 100% 1
Validate login session Fully deployed and tested 100% 1
Upload new E-coupon Fully deployed and tested 100% 1
Update pending E-coupon Fully deployed and tested 100% 1
Publish pending E-coupon Fully deployed and tested 100% 1
Delete pending, published and expired E-coupon 66% 0.9 Delete expired E-coupon has yet to be implemented.
Integrate SpagoBI SDK Fully deployed and tested 100% 1
Configure SpagoBI data source, list of values, analytical driver, analytical document and JasperReports Engine Fully deployed and tested 100% 1
Create JasperReports XML (JRXML) template via iReport 75% 1 Celine Leong needs to confirm the format of the report and collected data on the E-coupons after discussing with the retailers (The Basement and 7" Pizza) and sponsor
Generate BI report for expired E-coupon with JRXML and JasperReports Engine on SpagoBI Fully deployed and tested 100% 1
Create Chart XML Not started 0.8 Adrian Lee is researching on how to create the chart XML
Generate chart for published E-coupon with Chart Engine on SpagoBI Not started 0.8 Adrian Lee is researching on how to use the Chart Engine on SpagoBI
Design of Web Application (Retailer) 60% 0.9 Alvin Lee will be assigned to design the Retailer Admin Dashboard (Web Application) after Celine Leong has completed her tasks.

Hibernate Project

Task/Function/Features Status Confidence level Comments
Set up Hibernate Configuration XML file for Hibernate Project Fully deployed and tested 100% 1
Create plain old java objects (POJO) model classes based on Hibernate Annotations Fully deployed and tested 100% 1
Create data access objects based on Hibernate Session and Hibernate Query Language (HQL) Fully deployed and tested 100% 1
Create shared controllers for both Web Applications Fully deployed and tested 100% 1
Export Hibernate Project as a library project Fully deployed and tested 100% 1
Configure c3p0 as the connection pool for Hibernate Project Fully deployed and tested 100% 1 c3p0 is implemented because Hibernate internal connection pool is not meant for production use. In addition, it will check for stale connections that MySQL has timed out.

Project Schedule

5B1G Planned vs Actual.png

Delay #1: Iteration 3

Task delayed: Installing WAMP Server/ TomCat and host environment
Reason: Accidentally logged out of VMware machine and was unable to return to the VM image

Delay #2: Iteration 5

Task delayed: "Load more" function
Reason: As our team switched from activity to fragment, the "load more" function was more difficult to develop with fragment navigation.

Task delayed: "SpagoBI" function
Reason: The configuration for SpagoBI was more technically challenging than we thought. Little help is provided online.

Delay #3: Iteration 6

Task delayed: Add E-coupon to the E-coupon cart and delete E-coupon from E-coupon cart'
Reason: The functionality was more technically challenging than expected.

Project Scope

Latest Scope

5b1g scope v3.png

Previous Scopes

V1
V2



Version Changes made
2

a) Merged Bookmarks and Shopping cart to E-coupon cart

  • Reason: It would be difficult for shoppers who use our mobile application to differentiate between Bookmarks and Shopping cart as they both seem to imply the same thing. Hence, we discussed this with our client and she agreed to merge the two to form the E-coupon cart.

b) Removed Transaction History

  • Reason: We removed the Transaction History as there was no more online Point Of Sales (POS) System as originally planned.

c) Added NFC scanner to replace QR scanner

  • Reason: Using QR scanners may not be feasible as it is impractical for a shopper to scan a product every time he/she wishes to purchase a product. In addition, there maybe a lack of familiarity of the QR code among users. Furthermore, the usage of the NFC scanner is more efficient as compared to a QR scanner. After discussing with our client, she agreed to the proposed changes.
3

a) Changed Featured list to Latest list and Recommended list to Personalised list

  • Reason: Prof Richard suggested changing Featured and Recommended to Latest and Personalised respectively to make the naming of the lists more intuitive. Hence, after careful discussion, we decided to change the names to make them more understandable.

b) Researched into Dijkstra's algorithm which allows us to obtain the shortest path for indoor routing
c) Researched into the Collaborative Filtering algorithm. This is for our predictive analysis for recommending e-coupons.


Schedule Metrices

The diagrams below show our scheduled number of days that we took for each iteration as well the actual number of days that we took. Our Schedule Index diagram shows the schedule index score which we scored for each iteration

5B1G Scheduled vs actual.png 5B1G Schedule Index.png


Our Schedule Index (SI) score is calculated by taking the actual duration divided by the schedule duration. If the SI is between 0.9 and 1.1, it means that we are currently on track. If the SI is less than or equals to 0.9, it means that we are ahead of schedule. If the SI is more than or equals to 1.1 then it means we are behind schedule. For most of our iterations (1,2,4 and 7), we were on schedule as our SI was between 0.9 and 1.1.

Key Issues

Iteration 5:

  • There was a value of 1.14 for the SI indicating that we were behind schedule
  • The number of actual days, which the team took, was 16 days whereas the number of scheduled days was 14 days.
  • The reason why we were behind schedule for 2 days was because integration of “load-more” E-coupon function to Android Fragment was more difficult than expected as compared to integrating to Android Activity
  • The SpagoBI configuration was more difficult than we expected. In addition, due to insufficient technical support available online, we have to rely on "trail and error" method to resolve our issues.
  • Hence, there was a delay in schedule as we did not manage to resolve the function within the scheduled days
  • Our team decided to pushed this function to the next iteration (Iteration 6)

Links

[Index Calculation]

Bug metrices

   

5B1G Iteration Bugs 1.png

5B1G Iteration Bugs 4.png

5B1G Iteration Bugs 5.png

   

5B1G Iteration Bugs 6.png

5B1G Iteration Bugs 7.png


Note: There is no bugs found in iteration 2 & 3. Because during these 2 iterations, we did simple functions and configurations. The application is working as we expected and no bugs were found.

Risk Management

The following is our prioritized risks during the mid Term presentation. Our full account of the risks can be viewed here.

S/N Risks description Likelihood of Occurence Impact Mitigation/Contingency plan
1 Reliance on WifiSLAM (3rd Party) SDK and services may result in us not being able to demonstrate the function to our supervisor and client when the 3rd party goes down. Medium High To take video of our application when we implement new functions
2 Vendors may back out of our user testing and we won't be able to conduct a user test that can simulate a real environment. Medium High We have approached other retailers such as the 7" Pizza to work with us in case The Basement do not work with us.
3 Sponsor/Client may not know the exact changes in the mobile and web applications Medium High We created low fidelity prototypes and flow through diagrams for the mobile and web applications. Through these prototypes and diagrams we hoped that they would communicate effectively with the client and ensure the changes are understood properly.

Development

Summary:

Our team would first brainstorm on how the overall interfaces and flow-through for our mobile and web applications should look like. After which, prototypes will be developed and feedback will be given by the team as to what changes can be made to better improve the design and the overall implementation. Our team would also create flow-through diagrams as well as paper protoypes. The purpose of the flow-through diagrams, which are created using Balsamiq, is to give an overview of how the applications works. An example of our flow-through diagrams can be viewed here. The creation of low fidelity paper prototypes are for users to test our applications and gather their feedback and opinions on our applications. An example of our paper prototypes can be seen here. After gathering the feedbacks and discussing, we would then implement the necessary changes to our applications.

Below is a summary of the changes that we have made to our overall interface as well as our functionalities. We have also kept track of the new functionalities we have made as well as the old functionalities which we have taken out.

Changes made

Signing in functionality

During Acceptance Latest version
5B1G UI Storyboard final .001.jpg

5B1G UI Storyboard final .002.jpg

5B1G mobile flow 2.jpg

5B1G mobile flow 3.jpg

Bring Me there functionality

During Acceptance Latest version
5B1G UI Storyboard final .003.jpg


5B1G mobile flow 13.jpg

Share Me functionality

During Acceptance Latest version
5B1G UI Storyboard final .004.jpg


5B1G mobile flow 12.jpg

E-coupon Cart functionality

During Acceptance Latest version
5B1G UI Storyboard final .005.jpg


5B1G mobile flow 14.jpg

Search functionality

During Acceptance Latest version
5B1G UI Storyboard final .009.jpg


5B1G mobile flow 9.jpg


Scan functionality

During Acceptance Latest version
5B1G UI Storyboard final .006.jpg


5B1G mobile flow 15.jpg

View Latest (previously known as Recommended) functionality

During Acceptance Latest version
5B1G UI Storyboard final .010.jpg


5B1G mobile flow 4.jpg

5B1G mobile flow 5.jpg


New functionalities added

   

5B1G mobile flow 7.jpg

5B1G mobile flow 6.jpg

5B1G delete.jpg

Functionalities removed

   

5B1G UI Storyboard final .007.jpg

5B1G UI Storyboard final .008.jpg

Quality of Product

Intermediates Deliverables

Stage Specification Modules
Project Management Minutes
Metrics
Requirements User Interface Mockups and Videos
Analysis Use case
Design Deployment Diagram
Logical Diagram
System Architecture Diagram
ER diagram
Testing User Test Plan

Deployment

Area Details
Development Environment
  • Our application has been deployed on Android Ice Cream Sandwich (API level 15) onwards
Database
  • Database deployed on UPL server


Web Services
  • Web service to retrieve all E-coupons from shopper's E-coupon cart
  • Web service to add an E-coupon to the shopper's E-coupon cart
  • Web service to delete an E-coupon to the shopper's E-coupon cart
  • Web service to share E-coupon to shopper's Facebook
  • Web service to get image of E-coupon
  • Web service to redeem E-coupon
  • Web service to get list of E-coupons by category
  • web service to get list of latest E-coupons
  • web service to get list of personalised E-coupons
  • Web service to validate/create shopper's account
Web Links

User Testing for mobile application

Summary:
For the user testing of our mobile application, we have conducted 2 UT so far. The first UT involves the use of a high fidelity prototype while the second UT uses a low fidelity prototype.
Typically, our UT will revolve around 3 areas :

  • How we conduct the UT
  • Results
  • Changes made.

The first area (How we conduct the UT) typically shows our objectives, details , methodology, data collection methods as well as the scope of the features that are tested.
Our second area (Results) will show the observations we made when we conducted the UT. We also analyse the compiled feedback in which we have gathered from our users.
Our final area (Changes made) show the changes which we have made after carefully analysing and discussing the results from the UT.


Usability Test Date Conducted Usability Test Documents Usability Test Results More Details
1 2 Nov 2012 (Fri) UT 1 Execution Plan UT 1 Results

UT 1 Video

UT 1 Details
2 14 Jan 2013 (Mon) UT 2 Execution Plan

UT 2 Test Sheet
UT 2 User Appreciation

UT 2 Results UT 2 Details
Web 22 Jan 2013 (Tues) Web UT Execution Plan Web UT Results Web App Details
3 15 Feb 2013 (Mon) UT 3 Execution Plan

UT 3 Instruction Sheet
Link for Survey here

UT 3 Raw Qualitative Results

UT 3 Compiled Results

UT 2 Details

User Test 1

Area Details
Objectives
  • To understand whether the user finds the usability of the application user-friendly
Details
  • Participants: 7 shoppers/ undergraduates
  • Venue: SMU, SIS UPL Lab
  • Date: 2nd Nov 2012 (Friday)
  • Duration: 1 hour
Method

We conducted the user test using a high-fidelity paper prototype using the mock up designs of the application. Thereafter, we gave the participants the freedom to explore the application by themselves.

Data collection

Collecting of qualitative metrics

  • We will observe how the participants use the application during the testing procedure.
  • Upon completion of the paper prototype, the participant will be asked to give their feedback on usability and design of the application.
Scope of features tested
  • Sign in as an existing user
  • Login with Facebook
  • Bring me
  • Share me (share on Facebook)
  • Bookmark me
  • Scan a product and add to cart
  • View my shopping cart/ checkout
  • View past transactions
  • Browse E-coupons
  • View recommendations (now known as latest)

User Test 2

Area Details
Objectives
  • To obtain feedback from our users with regards to the layout in our application
  • To implement a layout that is considered to be of acceptable standard by users
Details
  • Participants: 10 shoppers/ undergraduates
  • Venue: SMU, SIS UPL Lab
  • Date: 14th Jan 2013
  • Duration: 2 hours
Method
  • We conducted the user test using a low-fidelity paper prototype using the mock up designs of the application. Thereafter, we gave the participants the freedom to explore the application by themselves.
  • We recorded observations and feedback
Scope of features tested
  • Login with Facebook
  • Push notification
  • View recommended E-coupons(now known as latest)
  • View home page/ featured E-coupons
  • Share me (share on facebook)
  • Bring me (navigation)
  • Add to E-coupon Cart
  • Use E-coupon (NFC tag)
  • Browse E-coupon (by category & location)
  • Map
  • E-coupon Cart
  • Logout of application

User Test 2

Area Details
Objectives
  • To obtain feedback from our users with regards to the layout in our application
  • To implement a layout that is considered to be of acceptable standard by users
Details
  • Participants: 10 shoppers/ undergraduates
  • Venue: SMU, SIS UPL Lab
  • Date: 14th Jan 2013
  • Duration: 2 hours
Method
  • Low-fidelity paper prototype. Users were given goals to complete
  • We recorded the observations and feedback of each user
Scope of features tested
  • Login via Facebook
  • Push notification
  • View recommended E-coupons(now known as latest)
  • View home page/ featured E-coupons
  • Share me (share on Facebook)
  • Bring me (Indoor navigation)
  • Add to E-coupon Cart
  • Use Me (NFC tag)
  • Browse E-coupon (by category & location)
  • Map
  • E-coupon Cart
  • Logout of application

User Test 3

Area Details
Objectives
  • To test the functionalities of the application from a user's perspective
  • To obtain feedback from our users with regards to the usability of the application
Details
  • Participants: 14 shoppers/undergraduates
  • Venue: SMU, SIS SR 3-4
  • Date: 15th Feb 2013
  • Duration: 3 hours
Method
  • Testing of actual application using the android device, Samsung Galaxy S III.
  • Each participant was given the instruction sheet and asked to circle how easy it was to complete each test case.
  • We recorded the observations and feedback of each user
Scope of features tested
  • Login with Facebook
  • View Home Page/ Latest e-coupons
  • Share Me (share on facebook)
  • E-coupon Cart
  • Use Me (NFC tag)
  • Search E-coupon (search by category & location)
  • Logout of application

Reflections

Reflection Reflection
UglyJUN.png
  • Learned that there is no single best project management methodology & development in android mobile application.
UglyADRIAN.png
  • Learned about how e-commerce business (like Coupang and Amazon)do recommendations which revolve around algorithms.
  • Learned about mapping POJO to relational database and annotations in Hibernate.
UglyCELINE.png
  • Learned how to critically analyze user feedback and prioritise the ones useful for our future development.
AlvinUGLY.png
  • Learned to develop sophisticated requirements to a seamless android mobile UI to provide easy user experience for users.
UglyCT.png
  • Learned the importance of understanding the basics and foundations of Android before diving into development.
UglyBIN.png
  • Learned the deployment of web application in greater details and the usage of external tools such as SpagoBI SDK and Hibernate library.