Skip to content

JohnMarkCapones/Aralify

Repository files navigation

Aralify Logo

Aralify

Learn to code through interactive challenges — at your own pace, your own difficulty.

FeaturesTech StackGetting StartedStructureContributingLicense

Version License PRs Welcome Platform


🚀 About

Aralify is a next-generation interactive programming education platform. Unlike traditional linear courses, every lesson offers Easy, Medium, and Hard difficulty tiers — letting learners progress at their own pace while being rewarded for mastering harder content.

Why Aralify?

  • 🎯 Flexible Difficulty — Pass any tier to progress. Return for harder challenges anytime.
  • 💻 Real Code Execution — Write code that actually runs, not just theory.
  • 🔥 Meaningful Gamification — XP multipliers, streaks, badges, and leaderboards that reward real effort.
  • 📱 Cross-Platform — Web, iOS, and Android with offline support.
  • 🌍 Multilingual — English and Filipino, with more languages coming.

✨ Features

Core Learning

  • 📚 Structured courses with levels and difficulty tiers (Easy/Medium/Hard)
  • ✍️ Interactive lessons with code examples and explanations
  • ❓ Multiple quiz types (multiple choice, fill-in-blank, code completion)
  • 🖥️ In-browser code execution with instant feedback
  • 📊 Progress tracking with mastery percentages

Gamification

  • ⭐ XP system with difficulty multipliers (1x / 2x / 3x)
  • 🔥 Daily streak tracking with milestone rewards
  • 🏆 Achievements and collectible badges
  • 📈 Global and friends leaderboards
  • 🎖️ Rank titles based on total XP

Social

  • 👥 User profiles with public stats
  • 👫 Follow system to connect with friends
  • 💬 Comments and discussions on lessons
  • 📰 Activity feed showing friend progress

Platform

  • 🌐 Responsive web application
  • 📱 Native mobile apps (iOS & Android)
  • 📴 Offline mode with downloadable lessons
  • 🌏 Internationalization (EN, FIL)

🛠️ Tech Stack

Frontend

Technology Purpose
Next.js 14 Web framework (App Router)
React Native + Expo Mobile apps
TypeScript Type safety
Tailwind CSS Styling
Zustand State management
TanStack Query Data fetching & caching
Monaco Editor Code editor

Backend

Technology Purpose
NestJS Backend framework (REST API)
Node.js 20+ Runtime
Prisma ORM
PostgreSQL Primary database
Supabase Auth, Postgres hosting, storage, realtime
Redis Caching, rate limiting, queues
Bull Background jobs & scheduling
Socket.io Real-time features (activity, leaderboards)
Judge0 Code execution sandbox

Infrastructure

Technology Purpose
Vercel Web hosting
Expo EAS Mobile builds
Sentry Error monitoring
PostHog Analytics

🏁 Getting Started

Prerequisites

  • Node.js 18+
  • pnpm 8+
  • PostgreSQL (or Supabase account)

Installation

  1. Clone the repository

    git clone https://github.com/your-username/Aralify.git
    cd Aralify
  2. Install dependencies

    pnpm install
  3. Set up environment variables

    cp .env.example .env.local

    Fill in the required values:

    # Database
    DATABASE_URL="postgresql://..."
    
    # Supabase
    NEXT_PUBLIC_SUPABASE_URL="https://xxx.supabase.co"
    NEXT_PUBLIC_SUPABASE_ANON_KEY="xxx"
    SUPABASE_SERVICE_ROLE_KEY="xxx"
    
    # Judge0 (Code Execution)
    JUDGE0_API_URL="https://judge0-ce.p.rapidapi.com"
    JUDGE0_API_KEY="xxx"
    
    # OAuth (optional)
    GOOGLE_CLIENT_ID="xxx"
    GOOGLE_CLIENT_SECRET="xxx"
    GITHUB_CLIENT_ID="xxx"
    GITHUB_CLIENT_SECRET="xxx"
  4. Set up the database

    pnpm db:push
    pnpm db:seed
  5. Start the development server

    pnpm dev
  6. Open the app


📁 Project Structure

Aralify/
├── apps/
│   ├── web/                 # Next.js web application
│   │   ├── app/             # App router pages
│   │   ├── components/      # React components
│   │   └── lib/             # Utilities
│   └── mobile/              # React Native app
│       ├── app/             # Expo router screens
│       └── components/      # RN components
├── packages/
│   ├── api/                 # tRPC routers
│   ├── db/                  # Prisma schema & client
│   ├── ui/                  # Shared UI components
│   └── config/              # Shared configs
├── docs/                    # Documentation
└── scripts/                 # Utility scripts

📜 Scripts

Command Description
pnpm dev Start web development server
pnpm mobile Start Expo development server
pnpm build Build for production
pnpm lint Run ESLint
pnpm test Run tests
pnpm db:push Push schema to database
pnpm db:seed Seed database with sample data
pnpm db:studio Open Prisma Studio

🤝 Contributing

We welcome contributions! Please read our Contributing Guidelines before submitting a PR.

Quick Start

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m "feat: add amazing feature"
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Commit Convention

We use Conventional Commits:

feat: add new feature
fix: resolve bug
docs: update documentation
style: formatting changes
refactor: code restructuring
test: add tests
chore: maintenance

🗺️ Roadmap

  • Project setup and architecture
  • Phase 1: MVP
    • Authentication system
    • Course and lesson structure
    • Quiz system
    • Code execution integration
    • Basic gamification (XP, streaks)
    • Python & JavaScript courses
  • Phase 2: Social
    • Friend system
    • Comments and discussions
    • Activity feed
    • Offline mode
  • Phase 3: Growth
    • Additional languages
    • Premium subscriptions
    • Certification system
    • AI-powered hints

📄 License

This project is licensed under the MIT License — see the LICENSE file for details.


🙏 Acknowledgments

  • Sololearn — Inspiration for interactive learning
  • Duolingo — Gamification inspiration
  • Judge0 — Code execution API
  • Supabase — Backend infrastructure

Build your skills. Forge your future.

WebsiteTwitterDiscord

About

Aralify is an interactive programming education platform where learners solve real coding challenges with tiered difficulties (Easy/Medium/Hard), earn XP and achievements, and track their progress across web and mobile.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors