A community platform for Auroville residents to connect, share information, and engage in discussions.
The Auroville Connect dashboard showing community events, announcements, and forum posts
Forum System
- Create and view posts
- Comment on posts
- Vote on posts and comments
- Sort posts by hot, top, and new
- View individual post details
- Track post views
User Authentication
- Email-based registration
- JWT authentication
- Role-based access control
- Password reset functionality
- Email verification
Community Features
- Weekly events calendar
- City services directory
- Notifications system
- User profiles
Frontend
- React with TypeScript
- Vite for build tooling
- TailwindCSS for styling
- React Router for navigation
- Zustand for state management
Backend
- Node.js with Express
- PostgreSQL database
- Prisma ORM
- JWT for authentication
- Nodemailer for emails
- Node.js (version 16 or later)
- npm
- Supabase Account
- Create a new Supabase project at Supabase
- Go to Project Settings > API
- Copy your Project URL and Anon Key
- Rename
.env.exampleto.env - Fill in your Supabase credentials in the
.envfileVITE_SUPABASE_URL=your_supabase_project_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
This project uses Supabase for authentication. Key methods are implemented in src/lib/auth.tsx:
signUp: Register a new usersignIn: Authenticate an existing usersignOut: Log out the current user
Supabase is integrated to provide:
- Authentication
- Database operations
- Realtime subscriptions
To use Supabase in your components:
import{supabase}from'./lib/supabase';// Example: Fetching dataconstfetchData=async()=>{const{ data, error }=awaitsupabase.from('your_table').select('*');}// Example: Realtime subscriptionconstsubscribeToChanges=()=>{supabase.from('your_table').on('*',payload=>{console.log('Change received!',payload);}).subscribe();}Install dependencies
npm installStart the development server
npm run dev
Ensure all environment variables are set in your deployment platform.