QR Scan Counterfeit iOS Prototype App Development

Register
Submit a solution
The challenge is finished.

Challenge Overview

CHALLENGE OBJECTIVES
  • iOS prototype app development using Swift
  • A total of 17 screens
 
PROJECT BACKGROUND
  • The objective of the project is to develop a counterfeit iOS application that would be used to scan objects and verify its authenticity / uniqueness.
  • It should be very easy to scan and in the app users would be able to:
    • View History, which is a list view of past scans
    • Verify the object being scanned
  • In this challenge we’d like to build an iOS prototype app following the provided design using Swift.
 
WORKFLOW
Please make sure your design incorporates this high level workflow, for more details please check the design we provided in the forum:
  • User launches the iOS app and goes through the onboarding screens
  • User gets to the login screen and can login from there, the forgot password and account registration flows can be ignored for now
  • Now user reaches the home screen and can his / her scan stats, recent scans or start a new scan
  • If app is in single mode, on completion of a scan user can see details or report a counterfeit or continue scan; or if the app is in batch mode, results just get saved to history automatically and user can keep scanning without any interruption
  • User can view full history of scans on history screen, search for scan, filter scans, view scan details, etc.
  • User can change some settings on settings screen
 
GENERAL REQUIREMENTS
  • You must define the json structure for scan to include all fields used by the prototype, you should carefully check the history, filter, advanced filter, search and detailed screens to identify all fields.
  • Data in the app must not be hardcoded, they should come from json files instead.
  • Please provide enough data in your json file so the app can be properly demonstrated.
 
SCREENS / FEATURES
The following screens are in scope of this challenge. Please carefully check the design to see all details, and ask in the forum if you have any questions.
 
Onboarding Screens
The following onboarding screens are in scope:
  • 01_Splash.png
  • 02_Onboarding.png
  • 03_Onboarding.png
  • 04_Onboarding.png
  • Please note from any of the onboarding screens, clicking Login will redirect users to the login screen
 
Login Screens
The logins screens are in scope, including:
  • 05_Onboarding.png
  • 06_Login.png
  • These two screens should be very straightforward, the Login button is disabled until both username and password are filled out
  • Forgot Password and Create Account flows are not in scope
 
Home Screen
Screen 23_Home_White.png is in scope:
  • Home screen will show the scan statistics, and recent scans
  • Data for statistics and recent scans should come from local json files
  • The Scan Now button will trigger the Scan screen
  • The View All button will lead to the History screen
 
Scan Screens
The following scan screens are in scope:
  • 24_Scan_White.png:
    • In this challenge we don’t need the scanner to be a real working camera, so you could build a dummy scanner based on the design
    • The status of Flash and Batch buttons will depend on the corresponding values from Settings
    • The Gallery icon will open the photos app on iOS
    • If Batch mode is on, users can keep scanning without going to screen 25_Scan_Success.png or 26_Scan_Counterfeit.png; only when in single mode will screens 25_Scan_Success.png or 26_Scan_Counterfeit.png be shown.
  • 25_Scan_Success.png: on successful scan, this screen will be shown, on hitting Details screen 32_Details.png will be shown.
  • 26_Scan_Counterfeit.png: if scan identifies counterfeit, this screen will be shown, on hitting Counterfeit a toast message should be shown.
  • Please randomly show screen 25_Scan_Success.png or 26_Scan_Counterfeit.png when in single mode.
 
History Screens
The following history screens are in scope:
  • 27_History.png / 28_FilteredHistory.png: these screens are pretty straightforward, user can see list of scans and filter by type (all, success, failed)
  • 29_AdvancedFilters.png: two additional filters (history and category) can be used, history filter’s default value comes from settings, and the list of usable filters should be configurable, the list of categories should come from json data (include all distinct categories from all scans)
  • 30_Search.png: search should be done on all text fields on scans. List of recent searches should be displayed and upon clicking any of them a search will be performed
  • 31_SearchSuggestions.png: scans with any text field matching the keyword should show in the results. And results should be shown as user types
  • At any time and whether on History screen or Search Results screen, when a history item is tapped screen 32_Details.png will show up.
 
Settings Screen
Screen 33_Settings_White.png is in scope:
  • The avatar area will not be editable in this challenge
  • Flash always On and Capture Mode will affect what’s shown on the scan screen as stated above. Capture Mode will either be Single or Batch
  • Color will be locked to White in this challenge
  • History affects what’s shown as the default on advanced filter screen
  • Help, Suggestion & Feedback and About will be dead links for now
 
FORM FACTORS
Please make sure your design supports these form factors:
  • In-scope
    • Mobile portrait
  • Out of scope
    • Tablet portrait and landscape
    • Mobile landscape
 
OS / DEVICES
  • iOS 12
  • iPhone 6s and newer models
 
DEVELOPMENT ASSETS
  • Design Source
 
TECHNOLOGY STACK
The following technology stack will be used as part of this challenge:
  • Swift 5
  • iOS 12
  • Xcode 10.2
  • JSON
 
SCORECARD REVIEW
  • This submission will use the new iOS development scorecard.
  • Please review the scorecard carefully.
  • Your submission will be reviewed on these requirements:
    • Challenge Spec Requirements
      • Requirements Coverage
    • Coding Standards
      • Best Practices
      • Code Quality
    • Development Requirements
      • Localization
      • Testing
      • Performance
      • Security
      • Deployment
    • Organisation & App Architecture
      • Onboarding
      • Launch Screen
      • Search
      • Alerts
      • Scrolling
      • Tables
      • Alignment
    • User Interaction
      • Button Size
      • Page Controls
      • Pickers
      • Sliders
      • 3D Touch
      • Feedback/Notifications
      • Progress Indication
      • Authentication
    • Visual Design
      • Typography
      • Legibility
      • Images
      • Text Fields


Final Submission Guidelines

FINAL DELIVERABLES
  • All original source code.
  • A detailed readme in markdown format explaining how to build, configure and deploy your code.

ELIGIBLE EVENTS:

Topcoder Open 2019

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30091810