Skip to content

hcrsolutions/nexanova-task1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Institute Management System

A full-stack application to manage Trainers and Subjects within an institute.

Technology Stack

  • Frontend: React, TypeScript, Vite, Material UI (MUI v5)
  • Backend: Spring Boot 3, Java 17, Spring Data JPA
  • Database: MySQL 8
  • Containerization: Docker, Docker Compose

Features

  • Trainer Management: Add, List, View Details, Delete Trainers.
  • Subject Management: Add, List, View Details (with Trainers).
  • M-to-N Relationship: Assign multiple subjects to trainers.
  • Responsive UI: Built with Material UI.

Project Structure

nexanov/
├── backend/            # Spring Boot Application
│   ├── src/            # Java Source code
│   ├── pom.xml         # Maven dependencies
│   └── Dockerfile
├── frontend/           # React Application
│   ├── src/            # React Source code
│   ├── package.json    # NPM dependencies
│   └── Dockerfile
└── docker-compose.yml  # Full stack orchestration

How to Run

Option 1: Docker (Recommended)

  1. Ensure Docker and Docker Compose are installed.
  2. Run from the root directory:
    docker-compose up --build
  3. Access the application:

Option 2: Manual Setup

Backend

  1. Navigate to backend.
  2. Ensure MySQL is running locally (update application.properties with your credentials).
  3. Run:
    mvn spring-boot:run

Frontend

  1. Navigate to frontend.
  2. Install dependencies:
    npm install
  3. Run dev server:
    npm run dev
  4. Open http://localhost:5173.

ER Diagram

erDiagram
    TRAINER ||--|{ TRAINER_SUBJECT : "teaches"
    SUBJECT ||--|{ TRAINER_SUBJECT : "taught by"
    
    TRAINER {
        long id
        string name
        string empId
        string email
        string phone
        string experience
    }
    
    SUBJECT {
        long id
        string name
        string description
    }
Loading

API Endpoints

Method Endpoint Description
POST /trainer Create a new trainer
GET /trainer List all trainers
GET /trainer/{id} Get trainer details
DELETE /trainer/{id} Delete a trainer
GET /trainer/{subject}/topic Get trainers by subject name
POST /subject Create a new subject
GET /subject List all subjects
GET /subject/{id} Get subject details with trainers

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors