Migrate Mobile App from Flutter to React Native & Transition Backend to AWS/MongoDB

Description

We need to migrate our mobile application from Flutter to React Native to align with our web application, which is built with React. This will allow for a more efficient and unified codebase across both platforms. Additionally, we will transition our backend services from Firebase to AWS and MongoDB.

Current Setup:

  • Mobile App: Built with Flutter, using BLoC for state management (complex to decouple).

  • Web App: Built with React, hosted on AWS Amplify.

  • Backend: Currently on Firebase.

Objective:

  • Convert the existing web app into a React Native mobile app to share most of the codebase.

  • Implement AWS and MongoDB as the new backend solution.

Scope of Work:

  1. Mobile App Migration:

    • Recreate the existing mobile app functionality in React Native using the same logic as the React web app.

    • Ensure smooth UX and feature parity with the current Flutter app.

    • Optimize performance for mobile devices.

  2. Backend Migration:

    • Replace Firebase with AWS services and MongoDB.

    • Implement authentication, database, and API integrations in AWS.

    • Ensure data migration and security best practices.

  3. Codebase Unification:

    • Refactor components and logic to maximize code sharing between React web and React Native.

    • Implement efficient state management in React Native (consider Redux, Recoil, or Context API).

Resources:

Deliverables:

  • Fully functional React Native app matching current Flutter app features.

  • AWS & MongoDB backend integrated with both mobile and web apps.

  • Documentation on setup, deployment, and maintenance.

Acceptance Criteria:

  • Mobile app is fully migrated and functional on both iOS and Android.

  • Web and mobile apps share a unified codebase with minimal duplication.

  • Backend services successfully transitioned to AWS & MongoDB.

  • Comprehensive testing is completed, including unit, integration, and end-to-end tests.