Skip to content

Repository files navigation

Astronify - Space Science E-Learning Platform

Astronify is a specialized e-learning platform devoted exclusively to space science and technology. It brings together learners, creators, and employers in the space industry under one comprehensive platform.

🚀 Project Overview

  • Learner LMS: Interactive courses with video streaming, quizzes, assignments, and blockchain-verifiable certificates
  • Creator Portal: Tools for domain experts to create, publish, and monetize space science courses
  • Job Board: Connect certified learners with space industry employers
  • Community: Forum discussions, blog posts, and live AMA sessions

🏗️ Architecture

This is a monorepo with the following structure:

astronify/
├── frontend/          # Next.js 14 web application
├── backend/           # Supabase Edge Functions & API Routes
├── infra/            # Database schema and policies
├── mobile/           # Flutter mobile app (Phase 2)
└── .github/          # CI/CD workflows

🛠️ Tech Stack

Frontend

  • Framework: Next.js 14 with TypeScript
  • Styling: Tailwind CSS + ShadCN UI
  • Forms: React Hook Form + Zod validation
  • i18n: next-i18next
  • State Management: React Context + React Query

Backend

  • Database: Supabase (PostgreSQL)
  • Authentication: Supabase Auth
  • Storage: Supabase Storage + Cloudflare Stream
  • API: Next.js API Routes + Supabase Edge Functions

Infrastructure

  • Hosting: Vercel (Frontend) + Supabase (Backend)
  • Payments: Stripe (USD) + Razorpay (INR)
  • Video: Cloudflare Stream
  • Email: Postmark via Supabase SMTP

🚀 Quick Start

Prerequisites

  • Node.js v20.2.1 or later
  • npm or pnpm
  • Supabase CLI
  • Git

Setup

  1. Clone the repository

    git clone <repository-url>
    cd astronify
  2. Install dependencies

    npm install
  3. Setup environment variables

    # Copy environment templates
    cp frontend/.env.example frontend/.env.local
    
    # Add your Supabase keys and other configuration
  4. Setup Supabase

    # Login to Supabase
    npx supabase login
    
    # Link to your project
    npx supabase link --project-ref YOUR_PROJECT_REF
    
    # Push database schema
    npx supabase db push
  5. Start development servers

    # Start frontend
    npm run dev:frontend
    
    # Start Supabase locally (optional)
    npm run dev:supabase

📁 Project Structure

Frontend (/frontend)

frontend/
├── components/        # Reusable UI components
│   ├── atoms/        # Basic components (Button, Input)
│   ├── molecules/    # Composite components (FormField)
│   └── organisms/    # Complex components (Header, Footer)
├── pages/            # Next.js pages
│   ├── api/         # API routes
│   ├── auth/        # Authentication pages
│   ├── courses/     # Course-related pages
│   └── dashboard/   # User dashboards
├── styles/          # Global styles and Tailwind config
├── lib/             # Utilities and configurations
└── public/          # Static assets

Backend (/backend)

backend/
├── functions/       # Supabase Edge Functions
│   ├── auth-webhooks/
│   ├── course/
│   ├── upload/
│   ├── payments/
│   └── certificate/
└── types/          # Shared TypeScript types

Infrastructure (/infra)

infra/
├── schema.sql       # Database schema
├── policies.sql     # Row-Level Security policies
└── storage-setup.sql # Storage bucket configuration

🧪 Testing

# Run unit tests
npm run test

# Run E2E tests
npm run test:e2e

# Run linting
npm run lint

# Run type checking
npm run type-check

🚀 Deployment

Frontend (Vercel)

  1. Connect your GitHub repository to Vercel
  2. Set environment variables in Vercel dashboard
  3. Deploy automatically on push to main

Backend (Supabase)

# Deploy Edge Functions
npx supabase functions deploy

# Push database changes
npx supabase db push

🔐 Security

  • Authentication: Supabase Auth with email/password + magic links
  • Authorization: Row-Level Security (RLS) policies
  • Data Protection: Encryption at rest and in transit
  • Compliance: GDPR, CCPA, and India DPDP Act ready

🌍 Internationalization

The platform is prepared for multiple languages using next-i18next:

  • Initial release: English
  • Future: Spanish, Hindi, and more

📊 Key Features

For Learners

  • Interactive video courses with transcripts
  • Downloadable resources (PDFs, datasets)
  • Quizzes and assignments with automated grading
  • Blockchain-verifiable certificates
  • Job matching based on skills
  • Community forum participation

For Creators

  • Structured onboarding and vetting process
  • Course blueprint and content management
  • Revenue sharing (60/40 split)
  • Analytics and payout tracking
  • Student feedback and reviews

For Companies

  • Free job posting (MVP)
  • Candidate matching by certificates/skills
  • Application tracking and management
  • Company profile customization

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

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

📞 Support

For support, email support@astronify.com or join our community forum.

🗺️ Roadmap

Phase 1 (Current)

  • Core LMS functionality
  • Basic creator portal
  • Job board integration
  • Community forum

Phase 2 (Future)

  • Mobile app with offline capabilities
  • AI-powered tutor bot
  • Advanced analytics
  • Blockchain certificate anchoring

Built with ❤️ for the space science community

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages