// ACCESS LOCKED //

Problem Statements Locked

Tasks for App Development will be revealed on 25 SEP 2026 • 15:00 IST.

00// DAYS //
00// HOURS //
00// MINS //
00// SECS //

Review the submission instructions while you wait for the tasks to unlock.

Your challenge

Build a personal save-for-later app

Build a mobile app for quickly saving useful notes, links, snippets, and images so they are easy to find again. Choose your own product name. The brief does not prescribe one. This challenge has three stages; you are not expected to complete them all. A polished, reliable Stage 1 is better than a broken Stage 3.

“I found something useful and don’t want to lose it.” Start with a dependable single-device inbox, then add private cloud sync and mobile sharing if you are ready.

Choose your own tools

Use any reasonable mobile stack: Flutter, React Native / Expo, or native Android. A backend as a service such as Firebase or Supabase is optional. You are not expected to complete every stage. Focus on a stable, polished result at the level you can explain. A reliable Stage 1 is better than a broken Stage 3.

Stage 01

Build the local app

A useful single-device inbox; no authentication or backend required

Everyone starts here

Everyone starts here, including first years and anyone new to app development. No authentication or backend needed; focus on a useful, reliable single device app and build your fundamentals.

  • Save notes, links, and images. Each item should have an ID, type, title, content or URL, tags, created/updated dates, and archived state (or an equivalent model).
  • Let the user create, view, open, edit, delete, archive, and restore saved items; add tags and search or filter the inbox.
  • Persist data locally so it survives closing and reopening the app. Use an appropriate option such as SQLite, Room, Core Data, AsyncStorage, Hive, or SharedPreferences.
  • Include an inbox/home screen and a create/edit screen. Add an item detail screen if your design needs one. Keep the UI understandable and usable; visual polish is secondary.
  • Handle empty or unusual input reasonably. Test creating notes and links, tagging, searching, editing, archiving/restoring, and relaunching the app.

Stage 02

Make it cross-device

Turn the local app into a private cloud inbox

For second-years

Designed for second-years ready to take their app further. Build on the Stage 1 foundation with authentication, a real backend, and private cross-device data.

  • Add sign-up and sign-in with simple email/username and password authentication; OAuth is not required.
  • Store items remotely with an owner ID and support create, read, edit, archive/restore, and delete. Signing in on another device or emulator must show the same account data.
  • Enforce privacy on the backend, not just by hiding other users’ items in the UI. Changing an item ID, request, URL, route, or deep link must never expose another user’s item.
  • With Firebase, configure Firestore Security Rules; with Supabase, configure Row Level Security; with a custom backend, check authenticated ownership on the server.
  • Testing scenario: Account A creates private items; Account B must not be able to read, edit, or delete them, including by directly requesting an item ID.
  • Handle backend loading, request failures, temporary loss of internet, and incorrect credentials with clear feedback and a way to retry. A sophisticated offline-first sync engine is not required.

Stage 03

Make it feel like a real product

Complete Share into the app, then choose at least one advanced mission

The X-factor

The X-factor for MAIT’s cracked devs: go beyond standard CRUD. Build the share-into-app feature, then pick at least one advanced mission to show what you can do.

  • Core challenge: Share into the app. Receive shared text and URLs through the phone’s normal Share menu. For example, sharing an article from Chrome should open your app with the URL filled in so the user can add a title or tags and save it.
  • Handle malformed or unsupported shared content without crashing.
  • After implementing Share into the app, choose at least one advanced mission below.

Choose at least one

Advanced missions

A: Better sync behaviour

Improve unreliable-network behaviour: retry failed saves, cache loaded items, preserve an unsaved draft during refresh, or detect remote edits. Document your conflict policy (for example, most recently updated wins, with a warning before replacing an item being edited). Perfect conflict resolution is not expected.

B: Public read only sharing

Let an owner create a public link to one item. The link must not expose the inbox, other items, account information, or predictable internal IDs. The owner can revoke it; deleted or revoked links show an appropriate unavailable state.

C: Attachment vault

Save an image or PDF with an item. For multi-user apps, enforce file ownership through storage permissions; an obscure filename is not security.

D: Resurface an item later

Let users schedule a reminder (for example, tomorrow or in 7 days) with a local or push notification. Tapping it opens the item; handle items that have since been deleted.

E: Data ownership

Let users export their data and delete their account, including associated items and uploaded files. Briefly explain what happens to their data after account deletion.

Before you submit

What to include

  • Source code in a repository with a commit history that shows your work over time.
  • A runnable build: APK, Expo build/link, TestFlight build, or another practical way to run it. If a hosted build is impractical, include clear setup instructions.
  • A short README covering what you built, the stage reached, tech stack, how to run it, known issues, and important technical decisions.
  • For Stage 2 or 3, briefly explain how authentication works, where data is stored, and how one user’s data is protected from another user.
  • A simple architecture diagram. Stage 1 can be Mobile App → Local Storage; Stage 2 can be Mobile App → Authentication → Backend / Database. Extend it for Stage 3 features as needed.
  • You may use libraries, documentation, tutorials, AI tools, Firebase, Supabase, and other tools, but be prepared to explain your code and architecture. A smaller app you understand is better than a large app you cannot explain.