React Native Developer to Build the Mobile App for an AI-Powered App(Existing Web App)
Buget: $100.0
FIXED /
⭐ 0.00 (0)
Ghana
react-native, android-app-development
Calificări preferate
- Experiență: Expert
ABOUT US
We run an AI-powered exam preparation platform for students sitting high-stakes national examinations, the kind that determine which secondary school a student gets placed into. We are a small, fast-moving team. The platform is already live on the web, already in schools, and already used by real students. We have seen strong early adoption across Africa, and that is where our growth is concentrated.
Our differentiator is not "more practice questions." Every question in our bank is tagged against Bloom's taxonomy, and we run a knowledge-tracing model over each student's attempts to build a cognitive profile: not just what they got wrong, but the level of thinking where they break down. That profile drives what the student sees next and produces a predicted exam score.
We sell to schools. Schools pay, teachers assign, students use it daily, and parents get progress updates. Mobile is where our students actually live, and the web app is currently the bottleneck.
WHAT WE NEED
We are looking for a React Native developer, or a small team, to build the mobile version of the product for Android and iOS, with Android as the clear priority for launch. Android market share among our users is close to total, and devices skew mid to low range.
There is an existing HTML/CSS/JS web app in production. It is built in vanilla JavaScript on Firebase. You will not be starting from a blank page. You will receive:
- Full access to the existing web codebase, so you can see every screen, flow, and state
- The live Firebase backend (Auth, Firestore, Cloud Functions, Storage) that the mobile app will talk to
- Existing design assets, brand system, character illustrations, and animation references
- Direct access to the founder, who is technical, for daily decisions. No committee, no waiting.
The backend is not being rewritten. This is a client build against a working system. Where an endpoint or Cloud Function does not exist yet, we will build it on our side, or you can propose it and we will review.
SCOPE OF WORK
1. Core learning experience
- Practice sessions and timed mock exams across multiple subjects
- Question rendering with support for text, images, diagrams, and mathematical notation
- Instant feedback, worked solutions, and explanation views
- Offline mode. This is not optional. Our students lose connectivity constantly. We need question sets cached locally, attempts queued while offline, and a reliable sync-and-reconcile strategy when the device comes back online. Conflict handling matters here.
- Low-data mode and aggressive asset optimisation. Data cost is a real purchase objection in our markets.
2. Gamification layer
This is central to retention, not decoration. We already have a working version on web that needs to be rebuilt natively and made better:
- Coin economy with earning rules, balances, and a redemption surface
- Streaks with flame animation, streak recovery mechanics, and loss-aversion prompts
- A contribution heatmap in the style of GitHub, showing daily activity across the month, with a highlighted personal-best cell that students can try to beat
- Leaderboards scoped by class, school, and cohort
- Badges, levels, and milestone celebrations
- Character companions (we have an existing illustrated cast) that react to performance
- A periodic recap experience in the spirit of Spotify Wrapped, summarising progress, consistency, and improvement over a month
Animation quality matters. Correct-answer bursts, streak flames, coin awards, and level-ups should feel fluid on a mid-range Android device, not janky. Experience with Reanimated, Skia, Lottie, or an equivalent is important.
3. Multiple user roles
The app serves at least four distinct user types, each with its own navigation tree, permissions, and data scope:
- Student. Practice, mocks, progress, gamification, leaderboards.
- Teacher. Class rosters, assignment creation, per-student and per-class analytics, weak-topic breakdowns, and the ability to drill from class view down to an individual student's cognitive profile.
- School administrator. Multi-class oversight, teacher management, licence and seat management, school-wide reporting.
- Parent or guardian. Lightweight read-only progress view for their ward, plus notification preferences.
We may add a tutor role that manages its own private roster of students outside the school structure. Please architect role handling so that a fifth role is a configuration change, not a refactor.
Role-based access control needs to be enforced properly, not just hidden in the UI.
4. Push notifications
- Firebase Cloud Messaging integration for Android and iOS
- Deep linking from a notification into the exact screen (a specific assignment, a specific result, a leaderboard position)
- Notification categories with per-user preferences: streak reminders, assignment due, results ready, teacher announcements, parent digests
- Scheduled and behaviour-triggered notifications, with logic for quiet hours and frequency capping so we do not burn goodwill
- Local notifications for streak protection when the device is offline
5. Payments and access control
- Mobile money integration, which is how most of our users pay, alongside card payments, via our existing payment provider
- Paywall and entitlement logic, including school-sponsored seats where the student never sees a payment screen
- Trial handling, expiry, and grace periods
6. Analytics, quality, and release
- Event instrumentation across the funnel so we can see activation, retention, and feature usage
- Crash and performance monitoring
- Over-the-air update capability so we can ship fixes without waiting on store review
- Full build and submission to Google Play and the Apple App Store, including store listings, screenshots, and privacy declarations
- Reasonable test coverage on business logic, especially the offline sync layer and entitlement checks
TECHNICAL REQUIREMENTS
- React Native. Expo is acceptable and probably preferred if you can justify it against our native module needs. Tell us your recommendation and why.
- TypeScript throughout
- Firebase (Auth, Firestore, Cloud Functions, Cloud Messaging, Storage)
- A clear local persistence strategy (MMKV, WatermelonDB, SQLite, or your recommendation) for the offline layer
- Clean state management, sensible folder structure, and code someone else can pick up
- CI/CD for builds
- Performance targets: cold start under 3 seconds and smooth interaction on a low-to-mid-range Android device with 3GB of RAM. We will test on real hardware from our markets, not on a simulator.
WHAT SUCCESS LOOKS LIKE
A student on an inexpensive Android phone with patchy data can open the app, practise for twenty minutes on their commute with no connection, see their streak survive, and have everything synced by the time their teacher opens the class dashboard that evening.
WHO WE ARE LOOKING FOR
- Demonstrable React Native apps you have shipped to both stores. Please link them. We will download them.
- Real experience with offline-first architecture and sync conflict resolution. This is the part most people underestimate, and it is the part we care about most.
- Comfort with animation and interaction polish. Send us something you have built that moves nicely.
- Firebase experience at production scale
- Ability to work asynchronously with clear written updates. We do not need you in our timezone, but we need you legible.
- Bonus: education technology, gamification systems, or emerging-market product experience
- Bonus: experience with mobile money or other non-card payment rails
ENGAGEMENT
- Fixed price by milestone, or hourly with a capped weekly commitment. Propose whichever you work best under.
- Milestone structure roughly: architecture and foundations, core learning and offline layer, gamification, roles and dashboards, notifications and payments, then polish and store submission.
- We want a working Android build in hand well before the full scope is complete. Shipping beats perfection.
- Long-term intent: this is a growing product with a roadmap beyond this build. A developer who does well here has ongoing work.
TO APPLY
Please skip the generic proposal. It will not get read. Instead, answer these four questions:
1. Link two or three React Native apps you have shipped, ideally with an offline component. Tell us what you specifically built.
2. How would you approach the offline question-cache and attempt-sync layer described above? A short paragraph on your architecture is enough.
3. Expo or bare React Native for this project, and why?
4. What is the biggest risk you see in this scope, and how would you de-risk it in the first two weeks?
Start the first line of your response with the word HEATMAP so we know you read the brief.
We will share the existing web app and a walkthrough of the current product with shortlisted candidates.
Deschide pe Upwork
AI proposal draft
Generate a short cover letter for this job. Edit before sending.
Sign in to generate an AI proposal draft.
Autentificare