Challenge Overview
Project Overview
The Galena team has partnered with Appirio [topcoder] to build a mobile application through the crowd. This application is intended to enhance the fueling experience by allowing you to check in to a pump and complete a purchase from the comfort of your phone. The application will make use of communication technologies such as Bluetooth Low Energy (BLE) beacon, iBeacon, QR code reading and so on to help check users into specific fuel pumps.
The users of the application will have the convenience of controlling their whole transaction through their handheld devices. It will be possible to store payment information (Credit Card/Paypal etc) in the application for ease of use and the application will push informative advertising and fueling status to the screen. In addition the app will provide paperless digital receipts after the transaction along with storing their history. Users will also be able to locate nearby gas stations through the application and choose and access multiple other loyalty schemes as appropriate.
We’re building this application using the Titanium Mobile Application Development Environment and aiming initially at Android based phones.
Image The Possiblities…
Imagine driving up to a self service gas station and being able to start your transaction without worrying about your wallet. Just hold your phone near the dispenser, the NFC kicks in and starts the transaction, you get to choose your payment method and just start fueling - better than that you can kick back and watch an advert while you’re doing so and in the process save money on the price per gallon you’re paying just for watching!
How about driving up to a full service gas station and monitoring everything that’s happening from the safety and luxury of your car - including using those reward points you just earned to save money on your gas or purchase a soda right there through your phone.
We hope you’re as excited about the possibilities here as we are!
Competition Task Overview
For this challenge, you will be designing the services and infrastructure that covers the requirements to make the application fully functioning.
This app is intended to be a mobile device only application, and we are primarily interested in targeting the Android platform for our first development build. Any suggestions of implementation on the iOS platform (and others) are welcomed and gratefully received but the prime focus should be Android.
We’re looking to implement this app using the Titanium Mobile Application Development Environment so that should be your first port of call for research and/or understanding if you’re not already up to speed.
We’ve provided a mostly complete User Experience prototype based in HTML5 through the project forum and we’d like you to ensure that your architecture provides a realistic implementation of that user flow.
Detailed Requirements
Please go through provided documentation listed below for detailed requirements.
Requirements / Must-Haves
-
Must be on Android
-
Must be a hybrid app using Titanium
-
Must use jQuery mobile for HTML5 UI Framework
-
Must be possible to scan QR Code using device’s camera
-
QR Code scanning must use ZXing
-
Must be possible to use NFC chip where present as a preference above QR Code
-
For NFC TiBeacons library must be used
-
Most of the heavy-lifting business requirements are on the cloud side
-
The cloud is managed by the client and will be called for those requirements (payment etc)
-
Cloud services are published over standard HTTP/S using JSON, AJAX must consume
-
For using web sockets, jWebSocket must be used
-
Media Streaming must be present for the advertisement display, Android subsystem must intercept the streaming events/status to track playback
-
Security is assumed to be covered by the HTTPS connection to the RESTful services provided by the client
-
User profiles should be stored locally on the phone. We’d like an easy mechanism for syncing with the cloud at a later point included as this will eventually be implemented but the details of this are outside the scope of this initial development.
Implementation Details
Our preferred development approach would be a walking skeleton implementation where each contest produces something that we can set-up and test, running against “real” data sources and providing feedback and any necessary modifications as we go.
Finally, we’re looking for an aggressive but realistic timeline for the implementation of this application. Please ask questions through the forum early and often, and if you have suggestions for any of the implementation details related to your questions, clearly express them so we can review and answer as quickly as possible. We’re highly engaged on this project and ready to work with you to deliver the best possible starting point for implementation!
NOTE: we do not have a formal requirements document, so it's important to ask questions early in the forum.
Technology Overview
-
Android 4.0.3+
-
Titanium 3.2.3+
-
jQuery Mobile
- Other libraries can be proposed so long as they have open-source licenses that permit re-use by commercial entities. Please check on the forum if you’re unsure.
References
-
Titanium Mobile Application Development
-
Existing application UI Prototype
- Provided through project forum upon registration
- Initial System Design Specification
-
RESTful Services Documentation
-
[TBD]
-
- TiBeacons
Documentation Provided
The following will be provided upon registration through the project forum:
-
Existing mobile UI Prototype revision 1.
-
System Design Specification
- RESTful services API / URL
Platforms
-
Mobile - Android Portrait Mode - Landscape for full media view only
- This revision is aimed at phone devices primarily (not tablets)
Final Submission Guidelines
Submission Deliverables
-
ADS
-
TCUML
-
Assembly/Code Specs (No Component)
-
ERD (if applicable)
-
Mapping file describing which screens make use of which APIs
-
Any other helpful documentation for developers implementing this architecture
- Details of any services that need to be mocked for rapid prototyping
Submission Guidelines
For each member, the final submission should be uploaded to the Online Review Tool.