Startup Studio is a platform designed by E-Cell IITH to connect aspiring startups with experienced mentors. It provides a streamlined process for registration, approval, and connection, facilitating the growth of our entrepreneurship ecosystem.
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
The backend is built using Go with the Gin framework.
-
Clone the repository:
git clone https://github.com/E-Cell-IITH/startup_studio cd startup_studio -
Install dependencies:
go mod tidy
-
Set up environment variables: Create a
.envfile in the/backenddirectory. You can copy the example file:cp .env.example .env
-
Run the server:
go run main.go
The server will start, typically on port 8000 or the port specified in your
.envfile.
The frontend is a React application built with Vite.
-
Navigate to the frontend directory:
cd ../frontend -
Install dependencies: (Use pnpm, npm, or yarn)
npm install
or
pnpm install
-
Set up environment variables: Create a
.envfile in the/frontenddirectory. You can copy the example file:cp .env.example .env
-
Run the development server:
npm run dev
The frontend application will be available at
http://localhost:5173(or another port if 5173 is in use).
All API endpoints are documented below, as defined in backend/internal/router/routes.go.
GET /test: A simple test route to check if the server is running.
POST /login: Handles user login.GET /logout: Handles user logout.
Protected Auth Routes (Requires authentication middleware)
GET /getId/:userId: Gets a user or mentor ID.POST /mentor-registration: Handles registration for new mentors.POST /startup-registration: Handles registration for new startups.GET /me: Fetches details of the currently authenticated user.
Protected Mentor Routes (Requires authentication middleware)
GET /: Fetches a list of all mentors.
Protected Startup Routes (Requires authentication middleware)
GET /: Fetches a list of all startups.
Protected Admin Routes (Requires authentication middleware)
GET /mentors/approval/:userId: Fetches all mentors who are pending approval.PATCH /mentor/approve/:adminUserId/:mentorUserId: Approves a specific mentor.DELETE /mentor/reject/:adminUserId/:mentorUserId: Rejects a specific mentor's application.GET /startups/approval/:userId: Fetches all startups that are pending approval.PATCH /startup/approve/:adminUserId/:startupUserId: Approves a specific startup.DELETE /startup/reject/:adminUserId/:startupUserId: Rejects a specific startup's application.PUT /connect/:adminUserId/:startupUserId/:mentorUserId: Connects a mentor with a startup.
Contributions are always welcome! We appreciate any help to improve this project.
If you'd like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix (e.g.,
git checkout -b feature/AmazingFeature). - Make your changes and commit them (e.g.,
git commit -m 'Add some AmazingFeature'). - Push your changes to your branch (e.g.,
git push origin feature/AmazingFeature). - Open a Pull Request against the
mainbranch of this repository.
We'll review your PR as soon as possible. Thank you for your support!