An online community and training platform for aspiring full stack engineers. Master frontend and backend development, build real-world projects, and launch your software engineering career.
- Community Posts - Create posts, comment, react, and share media attachments
- User Profiles - Showcase your skills and portfolio
- Calendar Events - Community calendar and event management
- Messaging - Private messaging between community members
- Members Directory - Discover and connect with other members
- Notifications - Stay updated with real-time notifications
- Classroom Modules - Educational content and learning modules
- Subscriptions - Stripe-powered subscription plans (free/basic/pro)
- Framework: TanStack Start - Full-stack React framework
- Database: PostgreSQL with Drizzle ORM for type-safe queries
- Authentication: Better Auth with email/password authentication
- Styling: Tailwind CSS with Radix UI components
- File Storage: AWS S3/R2 with presigned URL uploads
- Payments: Stripe integration for subscriptions
- TypeScript: Full type safety throughout
- Node.js (v18 or higher)
- PostgreSQL (via Docker or local installation)
- npm or yarn
git clone <repository-url>
cd full-stack-campusnpm installCopy .env.example to .env and configure:
- Database connection (PostgreSQL)
- Better Auth secrets
- Stripe keys (for payments)
- AWS S3/R2 credentials (for file storage)
npm run db:upnpm run db:migratenpm run devThe application will be available at http://localhost:3000
npm run dev # Start development server on port 3000
npm run build # Build for production (includes type checking)
npm run start # Start production servernpm run db:up # Start PostgreSQL Docker container
npm run db:down # Stop PostgreSQL Docker container
npm run db:migrate # Run database migrations
npm run db:generate # Generate new migration files
npm run db:studio # Open Drizzle Studio for database managementnpm run stripe:listen # Listen for Stripe webhooks in developmentsrc/
├── routes/ # File-based routing with TanStack Router
├── components/ # Reusable React components (ui/ subfolder for base components)
├── db/ # Database configuration and schema definitions
├── data-access/ # Data access layer functions
├── fn/ # Business logic functions and middleware
├── hooks/ # Custom React hooks for data fetching and state management
├── queries/ # TanStack Query definitions for server state
├── utils/ # Utility functions and helpers
└── use-cases/ # Application use cases and business logic
Comprehensive documentation is available in the docs/ folder:
- Architecture - Code organization and layered architecture
- Authentication - Authentication setup and implementation
- Subscriptions - User plans and subscription system
- TanStack Start - Technical implementation details for routes and server functions
- UX Guidelines - User experience guidelines for consistency
- File Uploads - File upload implementation details
- Feature Roadmap - Complete feature roadmap
- Data Fetching: Uses TanStack Query with custom hooks pattern
- Authentication: Better Auth with session management
- File Uploads: Presigned URLs for direct S3/R2 uploads
- Subscriptions: Stripe-based with plan limits enforcement
- Type Safety: Full TypeScript with Drizzle ORM schema inference
This project follows a feature-driven development approach. Features are organized into epics and can be found in docs/features/. Each feature is designed to be completed in approximately one day (2-8 hours).
[Add your license here]