Skip to content

evasafi/collabro-backend-and-frontend

Repository files navigation

Collabro Backend

The backend API for Collabro — a web platform connecting university students and instructors for project collaboration.

Built with Python + Flask, connected to a MySQL database hosted on Railway.


What this does

This backend handles all the data for the Collabro website:

  • User registration and login
  • Creating and viewing projects
  • Applying to join projects
  • Requesting advisors
  • Announcements
  • Project team messaging

Setup — do this once after cloning

1. Clone the project

git clone https://github.com/evasafi/collabro-backend.git cd collabro-backend

2. Create your virtual environment

python -m venv venv .\venv\Scripts\activate

3. Install packages

pip install -r requirements.txt

4. Create your .env file

Create a file called .env in the root folder. Get the values from Railway — do not commit this file to GitHub.

Your .env should look like this: MYSQL_HOST= MYSQL_PORT= MYSQL_USER= MYSQL_PASSWORD= MYSQL_DB= SECRET_KEY=collabro2026supersecretkey

5. Run the server

python app.py

Server starts at http://localhost:5000


How to test the API

Download Postman from postman.com Use it to send requests to the routes listed below.


All API routes

Auth

POST /api/auth/register POST /api/auth/login

Projects

GET /api/projects/ GET /api/projects/:id POST /api/projects/ PUT /api/projects/:id DELETE /api/projects/:id

Applications

POST /api/applications/ GET /api/applications/project/:project_id GET /api/applications/user/:user_id PUT /api/applications/:id/status

Advisors

POST /api/advisors/ GET /api/advisors/incoming/:instructor_id GET /api/advisors/sent/:project_id PUT /api/advisors/:id/status GET /api/advisors/search

Announcements

GET /api/announcements/ GET /api/announcements/:id POST /api/announcements/ PUT /api/announcements/:id/status

Messages

GET /api/messages/conversation/:project_id POST /api/messages/conversation/:project_id/send


File structure

collabro-backend/ ├── .env ← your private credentials (never share on GitHub) ├── app.py ← starts the server, run this file ├── config.py ← reads .env values ├── extensions.py ← database connection ├── requirements.txt ← all packages needed └── routes/ ├── auth.py ← register and login ├── projects.py ← project CRUD ├── applications.py ← apply to projects ├── advisors.py ← advisor requests ├── announcements.py ← announcements └── messages.py ← team messaging


Tech stack

  • Python 3
  • Flask
  • MySQL (hosted on Railway)
  • flask-mysqldb
  • flask-cors
  • python-dotenv
  • werkzeug

Team

Built by SPM Group 1 — Uskudar University

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors