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.
- 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
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
- 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
- Database: Supabase (PostgreSQL)
- Authentication: Supabase Auth
- Storage: Supabase Storage + Cloudflare Stream
- API: Next.js API Routes + Supabase Edge Functions
- Hosting: Vercel (Frontend) + Supabase (Backend)
- Payments: Stripe (USD) + Razorpay (INR)
- Video: Cloudflare Stream
- Email: Postmark via Supabase SMTP
- Node.js v20.2.1 or later
- npm or pnpm
- Supabase CLI
- Git
-
Clone the repository
git clone <repository-url> cd astronify
-
Install dependencies
npm install
-
Setup environment variables
# Copy environment templates cp frontend/.env.example frontend/.env.local # Add your Supabase keys and other configuration
-
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
-
Start development servers
# Start frontend npm run dev:frontend # Start Supabase locally (optional) npm run dev:supabase
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/
├── functions/ # Supabase Edge Functions
│ ├── auth-webhooks/
│ ├── course/
│ ├── upload/
│ ├── payments/
│ └── certificate/
└── types/ # Shared TypeScript types
infra/
├── schema.sql # Database schema
├── policies.sql # Row-Level Security policies
└── storage-setup.sql # Storage bucket configuration
# 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- Connect your GitHub repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically on push to main
# Deploy Edge Functions
npx supabase functions deploy
# Push database changes
npx supabase db push- 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
The platform is prepared for multiple languages using next-i18next:
- Initial release: English
- Future: Spanish, Hindi, and more
- 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
- Structured onboarding and vetting process
- Course blueprint and content management
- Revenue sharing (60/40 split)
- Analytics and payout tracking
- Student feedback and reviews
- Free job posting (MVP)
- Candidate matching by certificates/skills
- Application tracking and management
- Company profile customization
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, email support@astronify.com or join our community forum.
- Core LMS functionality
- Basic creator portal
- Job board integration
- Community forum
- Mobile app with offline capabilities
- AI-powered tutor bot
- Advanced analytics
- Blockchain certificate anchoring
Built with ❤️ for the space science community