Skip to content

leo-hammett/Reflectable

Repository files navigation

Reflectable

Transform how students engage with course content. Reflectable bridges the gap between passive learning and active reflection by integrating directly with university VLE systems.

The Problem

University VLEs (like Moodle) are designed for content delivery, not student engagement. Course materials pile up, important lectures get buried, and there's no way to organize content in a way that makes sense for how you actually study.

Our Solution

Reflectable connects to your university's Moodle and lets you:

  • Organize your way — Restructure courses, promote important sections, and drag-to-reorder content
  • Reflect on what you learn — Attach notes, links, and files directly to lectures and resources
  • Collaborate with classmates — Share your course layouts via invite codes; crowdsource the best organization
  • Study offline — Cached content works without internet using smart stale-while-revalidate patterns

Key Features

Smart VLE Integration

Auto-authenticates with university SSO, fetches all your courses, and keeps sessions alive in the background — no more constant re-logins.

Unified Page Model

One consistent interface for courses, lectures, and custom groupings. Promote any Moodle section to root-level for instant access.

Collaborative Layouts

Share your course organization with an 8-character invite code. Community-ranked content bubbles up the best resources.

Rich Reflections

Add context-aware notes with markdown, file attachments (images, PDFs, audio), and share with friends or keep private.

Social Learning

Connect with classmates, see their public reflections, and build a study network.

Tech Stack

Layer Technology
Framework React Native + Expo SDK 54
Navigation Expo Router (file-based)
Backend AWS Amplify (Cognito, AppSync, S3)
State React Context + custom hooks
Platforms iOS (primary), Android, Web

Quick Start

# Install dependencies
npm install

# Start development server
npx expo start

# Run on iOS
npx expo start --ios

Architecture Highlights

  • Background relogin — WebView-based silent reauthentication when sessions expire
  • HTML parsing over AJAX — Solves iOS cookie isolation issues with Moodle
  • Simple ranking — Single averageRank (0-1) updated by any user reorder
  • Offline-first — All Moodle data cached with intelligent invalidation

Environment Setup

Create a .env file with:

EXPO_PUBLIC_REVENUECAT_IOS=your_key
EXPO_PUBLIC_REVENUECAT_ANDROID=your_key

Project Structure

app/                 # Expo Router screens
├── (auth)/          # Authentication flows
├── (tabs)/          # Main tab navigation (Courses, Lectures, Reflect, Friends, Profile)
└── vle/             # VLE login WebView

components/          # Reusable UI components
contexts/            # Auth, VLE, Layout, Network providers
services/            # Moodle API, caching, ranking, reflections

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages