A modern web application for connecting students on campus, built with React, TypeScript, Vite, and Supabase.
- Dashboard: Overview of projects, events, skills, and network
- Projects: Create and discover collaborative projects
- Events: Browse and add hackathons, workshops, and competitions
- Profile: Manage your profile, skills, and interests
- Frontend: React 18, TypeScript, Vite
- Backend: Supabase (Authentication, Database, Realtime)
- Styling: Tailwind CSS
- Routing: React Router
- Node.js (v18 or higher)
- npm or yarn
- Supabase account and project
- Clone the repository and navigate to the project directory:
cd campCon- Install dependencies:
npm install- Create a
.envfile in the root directory:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key- Start the development server:
npm run dev- Open your browser and navigate to the URL shown in the terminal (usually
http://localhost:5173)
The application uses the following Supabase tables:
users: Public user profilesprojects: Project listingsproject_members: User-project relationshipsproject_private_data: Secure project data (e.g., repo links)project_comments: Comments on projectsproject_join_requests: Join requests for projectsevents: Campus eventsevent_attendees: User-event relationshipsevent_comments: Comments on eventsfeed_items: Activity feed items
The application uses a modern color palette:
- Black: Primary text and backgrounds
- White: Content backgrounds
- Silver: Borders and secondary text
- Navy Blue: Accents, buttons, and active states
npm run buildThis creates a dist folder with production-ready files.
This project is configured for easy deployment on Vercel. See VERCEL_DEPLOYMENT.md for detailed deployment instructions.
- Push your code to GitHub/GitLab/Bitbucket
- Import your repository on Vercel
- Add environment variables:
VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEY
- Deploy!
The vercel.json file is already configured with the correct settings for Vite.
src/
├── components/ # Reusable components (Sidebar, etc.)
├── contexts/ # React contexts (AuthContext)
├── lib/ # Utilities (Supabase client)
├── pages/ # Page components (Dashboard, Projects, Events, Profile)
├── App.tsx # Main app component with routing
└── main.tsx # Entry point
Authentication is handled through Supabase Auth. The AuthContext provides:
signUp(): Creates a new user account and profilesignIn(): Signs in an existing usersignOut(): Signs out the current useruser: Current user objectsession: Current session object
MIT