*** This is an update to the project requirements ***
Note: This project is expected to kick-off towards the end of July or early August.
Overview:
Build a mobile app that displays Survey Monkey data directly from Survey Monkey APIs or exported survey data in a SQL database. No need to ETL or cleanse data first.
Integrate with FireBase auth (ideally passwordless/email link sign-in and email/password).
Main screens:
- Login
- Landing page with basic text/image content
- User profile
- Report(s) with drop-down in case there is more than one report
My aim is keep you on to help me build out the app but I am asking for clean, well-documented code so another team can enhance and maintain if needed. Please only reply if you are comfortable and confident on the technologies/integrations and non-functional requirements.
Launch to UAT users by end of September. Launch to target audience by end of October.
Technology and integrations:
- Flutter 1.17.2 or later
- Firebase hosting (open to recommendations)
- Survey Monkey v3 API
- Google BigQuery SQL database
- Firebase Firestore
- Firebase auth (passwordless/email link and email/password methods)
- HubSpot or other CRM
Non-Functional Requirements:
• iOS and Android versions (phone and tablets)
• Web version (nice to have)
• State management: Open to recommendations on approach
• Clean, well-architected (MVVM), well-documented code that is easy to understand, maintain, enhance
• Maintain source code in GitHub
• Headless CMS for home screen content (open to recommendations)
• Upload to iOS and Google Play app stores
• Maintain confidentiality of this app to the public so it cannot be used as a portfolio app for your marketing/sales purposes
• English language only for first phase but all content should be i18n-enabled for easy language switching
• Collect payments via credit card (Stripe)/app stores
• Abstraction layer for all API calls so that all external APIS including Firebase auth/database, Survey Monkey and HubSpot can be easily swapped
• All input fields will have basic validation such as email address
• All deployments via CI/CD pipeline (Jenkins, Fastlane preferred)
• Robust automated testing via Flutter tools
• 3 environments: DEV, QA/UAT, PROD
◦ Remove environment dependencies in code and instead configure in Env variables
• Biometric login available after first login with email or email/password
• Obfuscate Dart code
• Push notifications