This application provides a platform for university students to form groups for their final year projects, request supervisors, and collaborate with recruiters.
- User Roles: Student, Supervisor, Recruiter, Admin
- Secure Authentication (Register/Login)
- Students can create/manage projects.
- Students can browse projects and request to join.
- Students can request supervisors for their projects.
- Students can request collaboration with recruiters.
- Project owners, supervisors, and recruiters can approve/reject requests.
- Admin panel for user management (view/delete).
- Frontend: React.js (JavaScript)
- Backend: Node.js, Express.js
- Database: MongoDB (using Mongoose)
- Authentication: JWT (JSON Web Tokens), bcryptjs
/final-year-project-platform
|-- /client # React Frontend
|-- /server # Express Backend
`-- README.md
-
Clone the repository (if applicable):
git clone <your-repo-url> cd final-year-project-platform
-
Backend Setup:
- Navigate to the server directory:
cd server - Install dependencies:
npm install
- Create a
.envfile in theserverdirectory. - Copy the contents of
.env.example(if provided) or add the following environment variables:# MongoDB Connection String (Replace with your actual Atlas URI) MONGO_URI=YOUR_MONGODB_ATLAS_CONNECTION_STRING # JWT Secret Key (Replace with a strong, random string) JWT_SECRET=YOUR_SUPER_SECRET_RANDOM_STRING # Server Port (Optional, defaults to 5000) PORT=5000
- Important: Replace placeholders with your actual MongoDB Atlas connection string and a secure JWT secret.
- Navigate to the server directory:
-
Frontend Setup:
- Navigate to the client directory:
cd ../client - Install dependencies:
npm install
- (Optional/Recommended) Create a
.envfile in theclientdirectory. - Add the base URL for your backend API:
(Adjust the port if your server runs on a different one).
REACT_APP_API_URL=http://localhost:5000/api
- Navigate to the client directory:
-
Run the Backend Server:
- Navigate to the
serverdirectory:cd server - Start the server (development mode with nodemon):
npm run dev
- Or, start the server (production mode):
npm start
- The server should start on the port specified in your
.envfile (default: 5000).
- Navigate to the
-
Run the Frontend Client:
- Navigate to the
clientdirectory:cd ../client - Start the React development server:
npm start
- This will usually open the application automatically in your default web browser at
http://localhost:3000(or another port if 3000 is busy).
- Navigate to the
This generated code provides the foundational structure. Significant development is required to implement the full functionality:
- Backend: Flesh out controller logic, add detailed authorization checks, implement data validation, refine error handling, add cleanup logic (e.g., when deleting users or projects).
- Frontend: Build out UI components, implement state management (using Context API or another library like Redux), connect components to API endpoints using the service functions, handle form submissions, display data, implement conditional rendering based on user roles and permissions, add styling.