Running GradGather locally requires three components to be active at the same time: a MongoDB instance for user authentication, the Node.js/Express server for routing and page rendering, and — if you want interest-based people recommendations — the Python/Flask microservice. The Express server and MongoDB are always required; the Flask recommender is optional and can be skipped when working on any feature unrelated to theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/meenalsingh0/GradGather/llms.txt
Use this file to discover all available pages before exploring further.
/recom endpoint.
Prerequisites
Make sure the following tools are installed on your machine before proceeding:- Node.js 18 or higher — Download from nodejs.org. Verify with
node --version. - npm — Bundled with Node.js. Verify with
npm --version. - MongoDB — Either a local installation (mongodb.com/try/download/community) or a free-tier MongoDB Atlas cluster. GradGather connects to
mongodb://localhost:27017/LoginFormPracticeby default. - Python 3.8+ and pip — Only required if you intend to run the people recommender microservice. Verify with
python --versionandpip --version.
Starting the Main Application
Clone the repository and install dependencies
npm install reads package.json and installs all dependencies — Express, Handlebars (hbs), Mongoose, paypal-rest-sdk, dotenv, and more — into node_modules/.Create the .env file
Create a file named See the Environment Variables page for a full description of each key and how to obtain PayPal sandbox credentials.
.env in the project root (next to package.json) with your configuration. At minimum you need:Start MongoDB
If you are running MongoDB locally, start the daemon in a separate terminal:If you prefer to use MongoDB Atlas, create a free cluster, copy your connection string, and update the
mongoose.connect() call in src/mongo.js (or set the MONGODB_URI environment variable as described in the Environment Variables guide).Start the Express server
From the project root, start the server with hot-reload using nodemon (recommended during development):Or start it once without auto-reload:When the server is ready you will see two confirmation messages in the terminal:
Open the app in your browser
Navigate to http://localhost:3000. You should see the BridgeU home page rendered by
tempelates/home.hbs.Starting the People Recommender (Optional)
The Flask recommender lives intempelates/recom.py. It reads tempelates/people_recommender_dataset.csv, computes cosine similarity between people based on their interest vectors, and serves results on http://localhost:5000/recom.
Navigate to the recommender directory
The script expects
people_recommender_dataset.csv to be in the same directory, so you must run it from inside tempelates/:Available Routes After Startup
Once the Express server is running, the following routes are registered and accessible:| Route | Description |
|---|---|
GET / | BridgeU home page |
GET /2signup | Student / Alumni role selection |
GET /signup | Signup form |
POST /signup | Create a new user account in LogInCollection |
GET /login | Login form |
POST /login | Authenticate user against LogInCollection |
GET /landing | Alumni dashboard |
GET /dashboard | General dashboard view |
GET /studash | Student dashboard |
GET /directory | Alumni directory |
GET /events | Events listing |
GET /clubs | Clubs listing |
GET /techno | TechnoX club detail page |
GET /connect | Connect with alumni |
GET /userprofile | Alumni profile page |
GET /stuprofile | Student profile page |
GET /donation | Donation campaigns |
GET /paymentGateway | PayPal checkout page |
GET /success | Payment success page |
GET /cancel | Payment cancelled by the user |
Development Tips
The templates directory is named
tempelates — with the letters transposed. This is not a typo to be corrected; it is the name used throughout the source code and must remain consistent across the src/index.js path resolution, the tempelates/ folder on disk, and any tooling (e.g. nodemon watch config) you add later.