Skip to content

CHAUDHARYS1/student-portal

Repository files navigation

Student Portal Project

Welcome to the Student Portal project! This is a full-stack web application built with React, Node.js, Express, and MongoDB. The project aims to provide a portal for managing student information, grades, and other related details.

Table of Contents

Prerequisites

Before you begin, ensure you have the following tools installed:

  • Node.js (v14 or later)
  • npm (Node Package Manager)
  • MongoDB (Make sure it's running)

Getting Started

Installation

Clone the repository:

git clone https://github.com/your-username/student-portal.git
cd student-portal
npm install
cd client
npm install

Running the Application

# Start MongoDB, either as a service or in a separate terminal
# Run the Express server:
npm run server

# Run the React client
cd client
npm start

# Using concurrently, you can use one command to run react client and express server.
npm start

Open your browser and go to http://localhost:3000 to access the Student Portal.

Project Structure

  • Client: Contains the React frontend application.
  • Server: Includes the Express backend server and MongoDB database integration.

Configuraion

Environment Variables: Configure environment variables in a .env file for sensitive information.

Backend

Express Server

The backend server is built with Express, providing RESTful APIs to interact with the database.

API Endpoints

Students

  • GET /api/students: Get a list of all students.
  • GET /api/students/:id: Get details of a specific student.
  • POST /api/students: Add a new student.
  • PUT /api/students/:id: Update details of a specific student.
  • DELETE /api/students/:id: Delete a student.

Teachers

  • GET /api/teachers: Get a list of all teachers.
  • GET /api/teachers/:id: Get details of a specific teacher.
  • POST /api/teachers: Add a new teacher.
  • PUT /api/teachers/:id: Update details of a specific teacher.
  • DELETE /api/teachers/:id: Delete a teacher.

Frontend

React Application

The frontend is built with React, providing a user-friendly interface to manage students, teachers and much more.

Ant Design Integration

Ant Design is used for styling and UI components. Tabs & Tables are implemented to organize data.

Troubleshooting

If you encounter any issues, please refer to the Troubleshooting section in the documentation.

Contributing

Not yet ready.

Future Features

User Profile: Allow users to view and edit their profiles. This could include their name, email, profile picture, etc.

Search Functionality: Implement a search bar to allow users to search for courses, students, or teachers.

Notifications: Implement a notification system to alert users of important events, such as assignment due dates, new course enrollments, etc.

Course Enrollment: Allow students to enroll in courses.

Grading System: Implement a system for teachers to grade students and for students to view their grades.

Discussion Forums: Implement discussion forums for each course to facilitate communication between students and teachers.

Calendar: Implement a calendar to display important dates such as exam dates, assignment due dates, etc.

File Upload: Allow users to upload and download files. This could be used for submitting assignments, sharing course materials, etc.

Analytics: Implement analytics to track user activity and course performance.

Accessibility Features: Implement features to make your app more accessible, such as text-to-speech, high contrast mode, etc.