Inspiration

Many students have little access to career services, and career apps often answer with a personality quiz or a list of job titles. Pathways Lab treats a career question like an experiment you can actually run.

What it does

  • Today: you get seven ordered days of short actions, about ten minutes each. One useful action counts as a good day. The first route takes you through the work of a data analyst.
  • Explore: an opportunity map with three equal branches: data and community, people and systems, and making and organizing. The app says "No path is ranked." Each branch lists free courses, communities, scholarships, volunteering and observation routes. For example, it lists a no-cost, hands-on Pandas course. An official page opens only when you choose to open it.
  • Portfolio: private check-ins, a one-page micro brief of what you made, tried or learned, the opportunities you saved, and export.

The core experiment works offline and needs no account. It has no streaks and no penalties for missed days. It does not promise employment, income, admission or scholarships.

Free and Supporter:

  • Free: the whole experiment, Explore and Portfolio, with ads.
  • Supporter Pack: a one-time lifetime purchase (pathwayslab_supporter_lifetime). It adds advanced portfolio templates and extra conversation-prep material. By design, it never unlocks core progress, safety features, data access or export.

How we built it

  • Stack: React Native / Expo.
  • Offline: the whole experiment runs from local data.
  • Tests: the suite has 40 suites and 535 tests.

RevenueCat

  • Client: the native RevenueCat client is imported lazily, and Purchases.configure runs behind an adapter (nativeRevenueCatClient.ts).
  • Entitlement contract: the adapter reports the entitlement pathwayslab_supporter as UNKNOWN, INACTIVE or ACTIVE. When the store can't be reached, the state is UNKNOWN: the app shows "unavailable" with a Retry button instead of treating the user as a non-supporter.
  • Offering: pathwayslab_default, requested by id, with the package $rc_lifetime.

AdMob (free tier only)

  • In the live build: versionCode 3 contains the Google Mobile Ads SDK and the AdMob application id. A banner is shown in the free tier.
  • Supporters: the supporter entitlement is read at startup, so supporters never see ads.

Challenges we ran into

  • Supporters saw ads at startup. The first AdMob build didn't read the supporter entitlement before starting ads. The fix reads it at startup, and a test confirms that saving a preference leaves that settled state unchanged.
  • Honest copy. The Check-in screen says it is not a diagnostic or employment-outcome measure. We checked that on the device, not only in review.

Accomplishments that we're proud of

  • A free career experiment for students with no account, no streaks and no outcome promises.
  • A three-state entitlement contract that never mislabels a supporter when the store is offline.

What's next for Pathways Lab

More seven-day routes beyond the first data-analyst route.

Judges' access

  • Promo code: Judges: promo code provided in the private judging field. The code unlocks the one-time Supporter Pack (pathwayslab_supporter, lifetime).
  • Where to redeem: in Portfolio, scroll to Support Pathways Lab and use the purchase button (Google Play accepts the code).
  • Without a code: the whole experiment is free.

Built With

Share this project:

Updates

Submission history