Skip to content

Repository files navigation

OPIGS — Online Placement Information Gathering System

An Online Placement Information Gathering System (OPIGS) for managing alumni, students, companies, job postings and applications, notifications, and real-time chat. Built as a Software Engineering lab project (CS29006) for Spring 2023-24.

Stack

  • Language(s): JavaScript (Node.js backend, React frontend), CSS, HTML
  • Framework / runtime: Node.js + Express (backend), React + Vite (frontend)
  • Notable libraries: mongoose (MongoDB), jsonwebtoken (JWT auth), cloudinary (file uploads), socket.io (real-time chat), axios (frontend HTTP client)

How it's organized

backend/             Express API, DB connection, routes, controllers, middlewares
  app.js             Express app and route wiring
  server.js          cloudinary init + start server
  routes/            route definitions (alumni, student, company, job, admin, application, notification, Chat routes...)
  controllers/       request handlers and business logic
  models/            Mongoose models
  database/          DB connection (dbConnection.js)
  middlewares/       error handling, auth, etc.
  public/            static assets served by backend
frontend/            React + Vite SPA
  src/                React app sources
  public/             frontend public assets
  index.html
socket/              standalone socket server for chat (socket/index.js)
OPIGS_outline.pdf    project outline
SOFTWARE REQUIREMENTS SPECIFICATION.pdf

How it fits together:

  • The Express backend (backend/) exposes REST endpoints under /api/v1/* (alumni, student, company, job, application, notification, admin) and hosts chat-related routes under backend/Chat. The DB layer uses Mongoose to persist users, jobs, and applications. Cloudinary is used for media uploads. The React frontend (frontend/) communicates with the API and connects to the socket server for real-time messaging (socket/index.js).

How to run it

  1. Backend
cd backend
npm install
# development
npm run dev       # uses nodemon server.js
# production
npm start         # node server.js
  1. Frontend
cd frontend
npm install
npm run dev       # start vite dev server
  1. Socket server (chat)
cd socket
npm install
node index.js

Run all three (backend, frontend, socket) concurrently during development. Adjust ports/URLs via environment variables (below).

Environment variables (example)

  • PORT — backend port
  • FRONTEND_URL — frontend origin allowed by CORS
  • MONGO_URI — MongoDB connection string
  • JWT_SECRET — secret for signing JSON Web Tokens
  • CLOUDINARY_CLIENT_NAME, CLOUDINARY_CLIENT_API, CLOUDINARY_CLIENT_SECRET — Cloudinary credentials for uploads

Useful files to inspect

  • backend/app.js — central Express app and route registration
  • backend/server.js — Cloudinary init and server start
  • backend/package.json — backend dependencies and scripts
  • frontend/package.json — frontend dependencies and scripts
  • socket/index.js — socket server entrypoint
  • backend/Chat/ — chat routes and message handling
  • OPIGS_outline.pdf and SOFTWARE REQUIREMENTS SPECIFICATION.pdf — project design & requirements

UI screenshots

Student Login Page

Stu_login

Student Register

Stu_register

Student Dashboard

Stu_dashboard

Update Profile

Stu_updateProfile

View CV

Stu_viewCV

Explore Jobs

Stu_exploreJobs

View Job Details

Stu_viewJobDetails

Request Alumni

Stu_reqAlum

Job Application Form

Stu_jobApplicationForm

Notifications

Stu_notif

Chat

Stu_chatBox

About

Online Placement Information Gathering System(OPIGS) ,Software Engineering Lab(CS29006) course project - Spring 2023-24

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages