A full-stack web application designed to be the central hub for college life, connecting students and clubs through events, real-time communities, and direct messaging.
UniSphere is a comprehensive platform built to enhance the college experience. It addresses the scattered nature of campus communication by providing a single, integrated solution where college clubs can announce and manage events, and students can discover opportunities, engage with peers, and build a vibrant community. From event registration to a real-time social feed, UniSphere is the digital heartbeat of the campus.
- π Event Management: Clubs can create and manage events, specifying details like volunteer needs and participant capacity.
- βοΈ User Registration: Students can easily create a profile and register for events as either a participant or a volunteer.
- π¬ Real-Time Community: A dynamic, Twitter-like feed where users and clubs can post updates, share experiences, and interact through likes, comments, and shares. This feature is powered by Ably for live, instantaneous updates.
- π© Direct Messaging: A private chat feature for users to connect and communicate one-on-one.
- π³ Stripe Payment Integration: Secure and seamless payment processing for ticketed events.
- βοΈ Cloud Media Storage: Efficiently handles image and media uploads using Cloudinary.
- π Secure Authentication: Utilizes
bcryptfor password hashing to ensure user data is secure.
This project is built using a modern MERN-like stack, with PostgreSQL as the database.
| Category | Technology |
|---|---|
| Frontend | React, Redux, Vite, Axios, Tailwind CSS |
| Backend | Node.js, Express.js |
| Database | PostgreSQL |
| Authentication | bcrypt |
| Third-Party APIs | Ably (Real-time), Stripe (Payments), Cloudinary (File Storage) |
The database is designed to efficiently manage the relationships between users, clubs, events, posts, and messages.
Follow these instructions to get a local copy of the project up and running for development and testing.
- Node.js (v18 or newer recommended)
npmoryarn- A running instance of PostgreSQL
-
Clone the Repository
git clone https://github.com/Akarsh1412/UniSphere.git cd UniSphere -
Set Up Backend
cd backend npm installCreate a
.envfile in the/backenddirectory and add the following variables:# Aiven PostgreSQL Database Configuration DB_USER=db_user DB_PASSWORD=db_password DB_HOST= db_host DB_PORT=dp_port DB_NAME=dp_name DB_CA_CERT=-----BEGIN CERTIFICATE----- xxxxxxxxxxxxxxxxxxxxxxxxx -----END CERTIFICATE----- # JWT Configuration JWT_SECRET=jwt_secret JWT_EXPIRE=nd # Bcrypt Configuration BCRYPT_ROUNDS=10 # Server Configuration NODE_ENV=development PORT=5000 # Cloudinary Configuration CLOUDINARY_CLOUD_NAME=cloud_name CLOUDINARY_API_KEY=api_key CLOUDINARY_API_SECRET=api_secret # Admin User Configuration ADMIN_ID=admin_id ADMIN_PASSWORD=admin_password ABLY_API_KEY=ably_api_key # Frontend URL (for CORS and email links) FRONTEND_URL=http://localhost:5173 # App Configuration APP_NAME=UniSphere STRIPE_SECRET_KEY=stripe_key -
Set Up Frontend
cd ../frontend npm installCreate a
.envfile in the/frontenddirectory and add the following variables:VITE_ABLY_API_KEY=api_key VITE_API_BASE_URL=your_backend_url VITE_STRIPE_PUBLISH_KEY=stripe_key -
Set Up Admin
cd ../client
npm install
Create a .env file in the /admin directory and add the following variables:
VITE_EMAILJS_SERVICE_ID=service_id
VITE_EMAILJS_TEMPLATE_ID=template_id
VITE_EMAILJS_PUBLIC_KEY=public_key
VITE_API_URL=https://uni-sphere-backend-kappa.vercel.app
- Run the Application
- Start the backend server (from the
/backenddirectory):npm run dev - Start the frontend development server (from the
/frontenddirectory):npm run dev - Start the admin development server (from the
/admindirectory):npm run dev
- Start the backend server (from the
The application should now be accessible at http://localhost:5173.
and the admin dashboard should now be accessible at http://localhost:5174.
Contributions are what make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt for more information.
Akarsh - LinkedIn
Project Link: https://github.com/Akarsh1412/UniSphere Live Link: UniSphere







