Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 95 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,72 @@
# WEC Project Expo - 2025
# WEC Project Expo - 2026

# Orbis

Orbis is a sophisticated event management platform designed to simplify and elevate the experience of organizing, hosting, and participating in events at NITK.

## Overview
## Table of contents

- [The Problem](#the-problem)
- [Our solution](#our-solution)
- [Features](#features)
- [User profiles and authentication](#user-profiles-and-authentication)
- [Event creation and management](#event-creation-and-management)
- [Community module](#community-module)
- [Project showcase](#project-showcase)
- [Form creation](#form-creation)
- [Setup and Development Guidelines](#setup-and-development-guidelines)
- [Deployment](#deployment)
- [Team Members](#team-members)

## The Problem

- Currently, information regarding events has to be spammed on WhatsApp groups, leading to inefficiencies in tracking. Forms have to be created by organisers using google forms or similar websites. Maintaining oversight of events, deadlines, and numerous registration forms is challenging. Also, there is no dedicated project showcase website. Projects are primarily hosted on individual club websites. There exists no community module, restricting interactions with campus peers on alternative platforms.

## Our Solution

- Orbis provides a centralized platform that streamlines event discovery, registration, and management. Instead of relying on scattered WhatsApp messages and multiple external links, all event related information, including details, deadlines, and application forms is organized in one place.

- Enables organizers to create and manage events, handle applications, track participants and maintain structured workflows. For participants, it simplifies discovering events, applying individually or in teams, and monitoring application status in real time.

- Beyond events, Orbis introduces a community-driven ecosystem, allowing users to interact through posts, comments, friend connections, and private messaging fostering stronger campus engagement within a single platform.

- It also serves as a dedicated project showcase, where clubs can present their work, making projects more accessible across the institute.

- Additionally, the platform allows form creation, enabling organizers to create and manage custom forms with ease, eliminating dependency on external tools.

- Overall, Orbis transforms fragmented workflows into a unified, scalable, and user-friendly ecosystem.

## Features

This platform features:
- Event creation and management
- User profiles and authentication
- Team formation and management
- Project submissions
- Application tracking
### User profiles and authentication

- Uses Auth0.
- Users can enter required details, create their profiles, login and navigate the app.

### Event creation and management

- Organisers can create event, accept/reject applications and update participants' attendance.
- Users can apply for an event individually or in a team and track the status of application.

### Community module

- Users can create public posts, react and comment on an existing post, discover people and add friends.
- Messages allow users to chat with their friends privately.

### Project showcase

- Has a list of clubs across the campus.
- Conveners can add projects to their respective clubs along with a short description, contributors, and the links to GitHub repo and live demo.
- Users can view projects and participate in discussions.

### Form creation

- Organisers can create forms with custom questions and retrieve responses. The question can be of the type: short-answer/paragraph/MCQ/rating/drop-down.
- Users can access all the active forms, fill and submit.

## Database Schema
![Orbis](https://github.com/user-attachments/assets/01384f1f-7fca-4ac9-9cc8-1f2c73f78cb2)

[View Prisma Schema](./backend/prisma/schema.prisma)

## Tech Stack

Expand All @@ -23,77 +76,86 @@ This platform features:
- **ORM**: Prisma
- **Authentication**: Auth0

## Setup & Development Guidelines
## Setup and Development Guidelines

### Prerequisites

- [Node.js](https://nodejs.org/) (v16 or higher)
- [npm](https://www.npmjs.com/) or [yarn](https://yarnpkg.com/)

### Project Setup

1. **Clone the Repository**

```bash
git clone https://github.com/yourusername/orbis.git
cd orbis
```

2. **Backend Setup**

```bash
cd backend
npm install
```

3. **Backend Environment Configuration**
Create a `.env` file in the backend directory with the following variables:

```
DATABASE_URL="your-supabase-postgres-connection-string"
PORT=4000
NODE_ENV=development

# Use your frontend deployment URL in production
CORS_ORIGIN="https://your-frontend-domain.com"
# For local development
# CORS_ORIGIN="http://localhost:3000"

AUTH0_ISSUER_BASE_URL="your-auth0-issuer-url"
AUTH0_AUDIENCE="your-auth0-audience"
AUTH0_CLIENT_SECRET="your-auth0-client-secret"
```

4. **Prisma Setup**

```bash
# Generate Prisma client
npx prisma generate

# Push schema changes to database (development only)
npx prisma db push
```

5. **Start the Backend Server**

```bash
npm run dev
```

The backend will run on http://localhost:4000 in development

6. **Frontend Setup** (in a new terminal)

```bash
cd ../frontend
npm install
```

7. **Frontend Environment Configuration**
Create a `.env` file in the frontend directory with the following variables:

```
# Use your backend deployment URL in production
VITE_API_URL="https://your-backend-domain.com"
# For local development
# For local development
# VITE_API_URL="http://localhost:4000"

# Supabase
VITE_SUPABASE_URL="your-supabase-url"
VITE_SUPABASE_ANON_KEY="your-supabase-anon-key"
VITE_SUPABASE_SERVICE_ROLE_KEY="your-supabase-service-role-key"

# Auth0
VITE_AUTH0_DOMAIN="your-auth0-domain"
VITE_AUTH0_CLIENT_ID="your-auth0-client-id"
Expand Down Expand Up @@ -147,6 +209,7 @@ Prisma Studio will be available at http://localhost:5555 when running the `npx p
### Prisma Schema

The database schema is defined in `prisma/schema.prisma`. This file defines:

- Data models
- Relationships between models
- Default values
Expand All @@ -167,10 +230,12 @@ The backend provides RESTful API endpoints for various features:
## Code Practices

### Comments

- Use clear and concise comments to explain complex code blocks
- Use JSDoc style comments for functions and components

### Code Style

- Follow the Airbnb JavaScript Style Guide
- Use 2 spaces for indentation
- Prefer `const` and `let` over `var`
Expand All @@ -179,12 +244,14 @@ The backend provides RESTful API endpoints for various features:
- Place opening braces on the same line as the statement

### Variable Style

- Use camelCase for variable and function names
- Use PascalCase for React components and class names
- Use UPPER_SNAKE_CASE for constants
- Choose meaningful and descriptive names

### Commit Style

- Write clear and concise commit messages
- Use present tense and imperative mood
- Capitalize the first letter
Expand All @@ -193,7 +260,19 @@ The backend provides RESTful API endpoints for various features:
- Use prefixes like `fix:`, `feat:`, `frontend:`, `backend:`, `misc:`

### Development Style

- Use feature branches for new features and bug fixes
- Keep the `main` branch in a deployable state
- Regularly pull changes from `main`
- Perform code reviews and seek feedback

## Deployment

- **Frontend**:
- **Backend**:

## Team Members

- <a href="https://github.com/StackedUpAman/" target="_blank">Aman Nagpal</a>
- <a href="https://github.com/ace0807/" target="_blank">Chinmayee M</a>
- <a href="https://github.com/Ritvik-17/" target="_blank">Ritvik Gampa</a>
Loading