Scientifically proven spaced repetition meets gamified learning. Watch your recall skyrocket with Recallify.
Features โข Demo โข Tech Stack โข Getting Started โข Structure โข Roadmap
- XP & Leveling System - Earn experience points for every correct answer
- Streak Tracking - Build daily streaks to stay motivated
- Achievement System - Unlock badges and rewards for milestones
- Level-Up Celebrations - Animated modals celebrating your progress
- XP Floaters - Real-time visual feedback for earned XP
- Spaced Repetition Algorithm - Science-backed review scheduling
- Adaptive Difficulty - Cards adjust based on your performance
- Recall Strength Tracking - Monitor memory retention per card
- Smart Study Sessions - AI-optimized review recommendations
- Multi-Deck Management - Organize cards by subject or category
- Performance Dashboard - Visualize your learning progress
- Retention Analytics - Track recall rates over time
- Study Heatmaps - See your most productive study patterns
- Cognitive Load Monitor - Prevent mental fatigue with smart pacing
- AI-Powered Insights - Get personalized study recommendations
- 3D Interactive Hero - Immersive Three.js landing page
- Glassmorphism Design - Modern, elegant UI components
- Smooth Animations - Framer Motion powered transitions
- Dark Mode Ready - Built-in theme support
- Responsive Design - Seamless experience across all devices
- Leaderboards - Compete with friends and the community
- Ghost Competitors - Race against AI-powered study partners
- Challenge System - Daily, weekly, and special challenges
- Social Proof - See what others are mastering
- Community Stats - Compare your progress with global averages
Beautiful 3D interactive hero with glowing particles and ethereal animations
![Dashboard Features]
- Quick stats overview with streak, retention, and cognitive load
- Smart nudge banner for optimal study timing
- Deck mastery progress with visual indicators
- Active challenges and AI insights
Interactive flashcard interface with:
- Real-time XP tracking
- Streak counter
- Confidence-based difficulty adjustment
- Session summary with detailed analytics
- React 18.3 - UI library with concurrent features
- TypeScript 5.8 - Type-safe development
- Vite 5.4 - Lightning-fast build tool
- React Router 6 - Client-side routing
- Tailwind CSS 3.4 - Utility-first styling
- shadcn/ui - High-quality component library
- Framer Motion 10 - Production-ready animations
- Radix UI - Accessible component primitives
- Three.js 0.160 - 3D graphics library
- React Three Fiber - React renderer for Three.js
- React Three Drei - Useful helpers for R3F
- GSAP 3.14 - Professional-grade animation
- TanStack Query - Server state management
- Context API - Global app state (Auth, Game)
- React Hook Form - Form state management
- Zod - Schema validation
- Recharts - Data visualization
- Lucide React - Beautiful icon library
- Sonner - Toast notifications
- date-fns - Date manipulation
- Node.js 18.x or higher
- npm or bun package manager
# Clone the repository
git clone <your-repo-url>
cd memory-master
# Install dependencies
npm install
# or
bun install
# Start development server
npm run dev
# or
bun devThe app will be available at http://localhost:5173
# Create optimized build
npm run build
# Preview production build
npm run preview# Run ESLint
npm run lintmemory-master/
โโโ public/ # Static assets
โ โโโ robots.txt # SEO configuration
โโโ src/
โ โโโ components/ # React components
โ โ โโโ brand/ # Logo and branding
โ โ โโโ features/ # Feature showcases
โ โ โโโ gamification/ # XP, streaks, level-ups
โ โ โโโ layout/ # App shell components
โ โ โโโ recall/ # Flashcard session UI
โ โ โโโ social/ # Community features
โ โ โโโ ui/ # shadcn/ui components
โ โโโ contexts/ # React Context providers
โ โ โโโ AuthContext.tsx # User authentication
โ โ โโโ GameContext.tsx # Gamification state
โ โโโ data/ # Mock data & types
โ โ โโโ mockData.ts # Sample decks & cards
โ โโโ hooks/ # Custom React hooks
โ โโโ lib/ # Utilities
โ โ โโโ utils.ts # Helper functions
โ โโโ pages/ # Route components
โ โ โโโ Index.tsx # Landing page
โ โ โโโ Dashboard.tsx # Main dashboard
โ โ โโโ RecallMode.tsx # Study session
โ โ โโโ Analytics.tsx # Performance stats
โ โ โโโ Library.tsx # Deck management
โ โ โโโ Challenges.tsx # Achievement system
โ โ โโโ Social.tsx # Community hub
โ โ โโโ Settings.tsx # User preferences
โ โ โโโ Login.tsx # Authentication
โ โโโ App.tsx # Root component
โ โโโ main.tsx # App entry point
โ โโโ index.css # Global styles
โโโ index.html # HTML template
โโโ vite.config.ts # Vite configuration
โโโ tailwind.config.ts # Tailwind settings
โโโ tsconfig.json # TypeScript config
โโโ package.json # Dependencies
graph TB
subgraph "Frontend Application"
A[React App] --> B[React Router]
A --> C[Context Providers]
C --> C1[AuthContext]
C --> C2[GameContext]
B --> D[Pages]
D --> D1[Landing/Index]
D --> D2[Dashboard]
D --> D3[RecallMode]
D --> D4[Analytics]
D --> D5[Library]
D --> D6[Social]
D --> D7[Challenges]
D --> D8[Settings]
A --> E[Components]
E --> E1[Layout Components]
E --> E2[UI Components]
E --> E3[Feature Components]
E --> E4[Gamification]
A --> F[3D Engine]
F --> F1[Three.js]
F --> F2[React Three Fiber]
F --> F3[GSAP Animations]
end
subgraph "State Management"
G[TanStack Query] --> A
H[Mock Data] --> A
I[Local Storage] -.->|Future| A
end
subgraph "Styling & UI"
J[Tailwind CSS] --> A
K[shadcn/ui] --> E2
L[Framer Motion] --> E
M[Radix UI] --> K
end
subgraph "Backend (Planned)"
N[REST API] -.->|Future| A
O[(Database)] -.->|Future| N
P[Authentication Service] -.->|Future| N
Q[Spaced Repetition Engine] -.->|Future| N
end
style A fill:#61DAFB,stroke:#333,stroke-width:3px
style N fill:#f9f,stroke:#333,stroke-width:2px,stroke-dasharray: 5 5
style O fill:#f9f,stroke:#333,stroke-width:2px,stroke-dasharray: 5 5
style P fill:#f9f,stroke:#333,stroke-width:2px,stroke-dasharray: 5 5
style Q fill:#f9f,stroke:#333,stroke-width:2px,stroke-dasharray: 5 5
graph TD
A[App.tsx] --> B[QueryClientProvider]
B --> C[AuthProvider]
C --> D[GameProvider]
D --> E[TooltipProvider]
E --> F[BrowserRouter]
F --> G[Routes]
G --> H1[Index - Landing Page]
G --> H2[Login Page]
G --> H3[Protected Routes]
H3 --> I1[Dashboard]
H3 --> I2[RecallMode]
H3 --> I3[Analytics]
H3 --> I4[Library]
H3 --> I5[Social]
H3 --> I6[Challenges]
H3 --> I7[Settings]
I1 --> J[AppLayout]
I2 --> J
I3 --> J
I4 --> J
I5 --> J
I6 --> J
I7 --> J
J --> K1[Header]
J --> K2[Sidebar]
J --> K3[Main Content]
I1 --> L1[StreakCard]
I1 --> L2[XPProgress]
I1 --> L3[SmartNudgeBanner]
I2 --> M1[Flashcard Display]
I2 --> M2[SessionSummary]
I2 --> M3[XPFloater]
style A fill:#8B5CF6,stroke:#333,stroke-width:3px,color:#fff
style B fill:#61DAFB,stroke:#333,stroke-width:2px
style C fill:#F59E0B,stroke:#333,stroke-width:2px
style D fill:#22C55E,stroke:#333,stroke-width:2px
sequenceDiagram
participant U as User
participant UI as UI Components
participant AC as AuthContext
participant GC as GameContext
participant MD as Mock Data
participant LS as Local Storage
Note over U,LS: User Login Flow
U->>UI: Enter Credentials
UI->>AC: login(email, password)
AC->>MD: Validate User
MD-->>AC: User Data
AC->>AC: setUser(userData)
AC-->>UI: isAuthenticated = true
UI->>U: Redirect to Dashboard
Note over U,LS: Study Session Flow
U->>UI: Start Study Session
UI->>MD: Get Flashcards
MD-->>UI: Cards Array
U->>UI: Answer Card (correct/incorrect)
UI->>GC: addXPEvent(xpAmount)
GC->>GC: Update XP Events
GC-->>UI: Show XP Floater
UI->>AC: addXP(xpAmount)
AC->>AC: Check Level Up
alt Level Up
AC->>GC: triggerLevelUp(newLevel)
GC-->>UI: Show Level Up Modal
end
AC-->>UI: Updated User State
Note over U,LS: Future Backend Integration
UI-.->LS: Cache Data (Offline Mode)
LS-.->UI: Restore on Reconnect
journey
title Recallify User Journey
section Discovery
Visit Landing Page: 5: User
View 3D Animation: 5: User
Read Features: 4: User
Click Get Started: 5: User
section Onboarding
Create Account: 3: User
Login: 4: User
View Tutorial: 4: User
section Daily Usage
Check Dashboard: 5: User
Review Due Cards: 4: User
Start Study Session: 5: User
Answer Cards: 5: User
Earn XP & Level Up: 5: User
View Progress: 5: User
section Engagement
Complete Challenges: 4: User
Check Leaderboard: 4: User
View Analytics: 5: User
Adjust Settings: 3: User
section Retention
Maintain Streak: 5: User
Unlock Achievements: 5: User
Share Progress: 4: User
stateDiagram-v2
[*] --> Unauthenticated
Unauthenticated --> Authenticated: Login Success
Authenticated --> Unauthenticated: Logout
state Authenticated {
[*] --> Dashboard
Dashboard --> StudySession: Start Review
Dashboard --> Library: Manage Decks
Dashboard --> Analytics: View Stats
Dashboard --> Social: Check Leaderboard
Dashboard --> Challenges: View Challenges
StudySession --> AnswerCard
AnswerCard --> EarnXP
EarnXP --> CheckLevelUp
CheckLevelUp --> LevelUp: XP >= Threshold
CheckLevelUp --> Continue: XP < Threshold
LevelUp --> Continue
Continue --> AnswerCard: More Cards
Continue --> SessionComplete: No More Cards
SessionComplete --> Dashboard
Library --> CreateDeck
Library --> EditDeck
Library --> DeleteDeck
CreateDeck --> Library
EditDeck --> Library
DeleteDeck --> Library
}
graph LR
subgraph "Presentation Layer"
A1[React Components]
A2[shadcn/ui]
A3[Three.js Canvas]
A4[Framer Motion]
end
subgraph "State Layer"
B1[React Context]
B2[TanStack Query]
B3[React Hook Form]
B4[Local State]
end
subgraph "Logic Layer"
C1[Custom Hooks]
C2[Utility Functions]
C3[Type Definitions]
C4[Mock Data]
end
subgraph "Styling Layer"
D1[Tailwind CSS]
D2[CSS Modules]
D3[Theme System]
end
subgraph "Build Layer"
E1[Vite]
E2[TypeScript]
E3[ESLint]
E4[PostCSS]
end
A1 --> B1
A2 --> D1
A3 --> A1
A4 --> A1
B1 --> C1
B2 --> C1
C1 --> C4
D1 --> E4
E2 --> E1
style A1 fill:#61DAFB,stroke:#333
style B1 fill:#F59E0B,stroke:#333
style C1 fill:#22C55E,stroke:#333
style D1 fill:#06B6D4,stroke:#333
style E1 fill:#646CFF,stroke:#333
Recallify implements a modified SM-2 algorithm that:
- Schedules reviews based on recall strength (0-100)
- Adjusts intervals based on answer confidence
- Optimizes for long-term retention (currently at 94.8% vs 72% average)
- XP Formula: Base XP ร Difficulty Multiplier ร Streak Bonus
- Level Progression: Exponential curve requiring ~1.5x more XP per level
- Streak System: Daily study maintains streaks with 24-hour grace period
Mock AI system provides:
- Optimal study time recommendations
- Deck mastery predictions
- Cognitive load warnings
- Personalized study strategies
- REST API development
- User authentication & authorization
- Database schema design (PostgreSQL/MongoDB)
- Card CRUD operations
- Session tracking & analytics storage
- Real spaced repetition algorithm implementation
- Card creation & editing UI
- Image & audio support for cards
- Export/Import deck functionality
- Offline mode with sync
- AI-powered card generation
- Collaborative deck sharing
- Real-time multiplayer challenges
- Advanced analytics & insights
- Mobile app (React Native)
- Unlimited deck creation
- Priority AI insights
- Custom themes
- Advanced statistics
- Team collaboration tools
- โจ Complete UI/UX design system
- ๐จ All frontend pages and components
- ๐ฎ Gamification mechanics (XP, levels, streaks)
- ๐ Mock data and state management
- ๐ญ Authentication flow (frontend only)
- ๐ 3D interactive landing page
- ๐ฑ Fully responsive design
- โ๏ธ Backend API development
- ๐๏ธ Database integration
- ๐ Real authentication system
- ๐ฑ Mobile applications
- ๐ค AI card generation
- ๐ฅ Social features expansion
- ๐ Internationalization
Contributions are welcome! This project is currently in frontend-only stage. The backend integration is the next major milestone.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style
- Use TypeScript for type safety
- Write meaningful commit messages
- Test your changes across devices
- Update documentation as needed
Currently, no environment variables are required as the app uses mock data. Once backend is integrated:
VITE_API_URL=http://localhost:3000/api
VITE_WS_URL=ws://localhost:3000- Mock authentication doesn't persist across refreshes
- All data resets on page reload (no backend yet)
- Some animations may be heavy on low-end devices
- Three.js hero scene needs optimization for mobile
This project is currently unlicensed. Please add a license file (MIT, Apache 2.0, etc.) before publishing.
Built with โค๏ธ by Shafwan Safi
- shadcn/ui - Component library
- Radix UI - Accessible primitives
- Tailwind CSS - Styling framework
- Three.js - 3D graphics
- Framer Motion - Animations
- Lucide - Icon library
For support, questions, or feedback:
- Open an issue on GitHub
- Email: [your-email@example.com]
- Twitter: [@YourHandle]