Skip to content

SuvithaaaaR/INTERNAL-MARKS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Internal Marks Calculator

A comprehensive system for calculating internal marks based on various activities and achievements using React + Node.js + SQLite.

πŸ“‹ Components

  1. Community Service - Up to 40 marks
  2. Patent Filing and Prototyping - Up to full FA marks (240)
  3. Scopus-Indexed Papers - Up to full FA marks (240)
  4. Hackathons and Contests - Up to full FA marks (240)
  5. Workshops and Seminars - Up to 20 marks
  6. Online Courses - Up to 80 marks
  7. Entrepreneurship - Up to full FA marks (240)
  8. Coding Competitions - Up to 120 marks
  9. Minor Projects - Up to 160 marks

πŸš€ Quick Start

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn

Installation Steps

  1. Install Backend Dependencies
npm install
  1. Install Frontend Dependencies
cd client
npm install
cd ..
  1. Create Environment File Create a .env file in the root directory:
PORT=5000
DB_PATH=./database/internal_marks.db
NODE_ENV=development
  1. Start the Application

Option 1: Development Mode (Recommended) Run both backend and frontend concurrently:

npm run dev

Option 2: Backend Only

npm run server

Then in another terminal:

cd client
npm start

Option 3: Production Mode

# Build frontend
cd client
npm run build
cd ..

# Start server
npm start

Access the Application

πŸ“± Features

Student Management

  • βœ… Add/Edit/Delete student records
  • βœ… Search and filter students
  • βœ… View student details and marks breakdown

Activity Entry Forms

  • βœ… Community Service entries
  • βœ… Patent filing and prototyping
  • βœ… Scopus-indexed publications
  • βœ… Project competitions
  • βœ… Hackathons participation
  • βœ… Workshop attendance
  • βœ… Online course certifications
  • βœ… Entrepreneurship activities
  • βœ… Coding platform achievements (HackerRank, CodeChef, LeetCode)
  • βœ… Minor project submissions

Automatic Calculations

  • βœ… Semester-wise marks calculation
  • βœ… Platform-specific rubrics (HackerRank, CodeChef, LeetCode)
  • βœ… Automatic capping of marks per category
  • βœ… Full FA marks allocation (best of Patent/Scopus/Competition/Hackathon/Entrepreneurship)

Reports & Analytics

  • βœ… Summary dashboard
  • βœ… Detailed marks breakdown
  • βœ… Export to CSV
  • βœ… Semester-wise filtering

πŸ› οΈ Tech Stack

  • Frontend: React 18, React Router, Axios, React Toastify
  • Backend: Node.js, Express
  • Database: SQLite3
  • Styling: Custom CSS

πŸ“Š Database Schema

The system uses SQLite with the following tables:

  • students - Student information
  • community_service - Community service activities
  • patent_filing - Patent applications
  • scopus_papers - Research publications
  • project_competitions - Project presentations
  • hackathons - Hackathon participation
  • workshops_seminars - Workshop attendance
  • online_courses - Online certifications
  • entrepreneurship - Startup activities
  • coding_platforms - Coding achievements
  • minor_projects - Minor projects

πŸ”Œ API Endpoints

Students

  • GET /api/students - Get all students
  • GET /api/students/:id - Get student by ID
  • POST /api/students - Create new student
  • PUT /api/students/:id - Update student
  • DELETE /api/students/:id - Delete student

Activity Endpoints

Each activity type has similar CRUD endpoints:

  • GET /api/{activity}/student/:studentId - Get entries
  • POST /api/{activity} - Create entry
  • PUT /api/{activity}/:id - Update entry
  • DELETE /api/{activity}/:id - Delete entry

Activities: community-service, patents, scopus, project-competitions, hackathons, workshops, online-courses, entrepreneurship, coding-platforms, minor-projects

Calculations

  • GET /api/calculations/:studentId - Get marks calculation
  • GET /api/calculations/report/summary - Get summary report

πŸ“ Marks Calculation Logic

Capped Categories

  • Community Service: Max 40 marks
  • Workshops & Seminars: Max 20 marks
  • Online Courses: Max 80 marks
  • Coding Platforms: Max 120 marks
  • Minor Projects: Max 160 marks

Full FA Marks (240)

Only the highest value from these categories counts:

  • Patent Filing & Prototyping
  • Scopus-Indexed Papers
  • Major Project Competitions (if β‰₯160 marks)
  • Major Hackathons (if β‰₯240 marks)
  • Entrepreneurship

Semester-wise Coding Platform Rubrics

HackerRank (HackOS)

  • Semester 2: 200-400 (20-60 marks)
  • Semester 3: 500-2000 (20-80 marks)
  • Semester 4: 2500-5000 (20-120 marks)
  • Semester 5-7: 6000-12500 (20-40 marks)

CodeChef (Rating)

  • Semester 3: 200-400 (20-80 marks)
  • Semester 4: 500-600 (20-80 marks)
  • Semester 5: 800-1800 (20-120 marks)
  • Semester 6-7: 2000-2600 (20-40 marks)

LeetCode (Problems Solved)

  • Semester 3: 2-4 (20-40 marks)
  • Semester 4: 5-12 (20-80 marks)
  • Semester 5: 30-80 (20-80 marks)
  • Semester 6: 90-140 (20-120 marks)
  • Semester 7: 160-250 (20-120 marks)

πŸ”§ Development

Project Structure

INTERNAL-MARKS/
β”œβ”€β”€ client/                  # React frontend
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/     # React components
β”‚   β”‚   β”‚   β”œβ”€β”€ forms/     # Entry forms for all activities
β”‚   β”‚   β”‚   β”œβ”€β”€ Dashboard.js
β”‚   β”‚   β”‚   β”œβ”€β”€ Students.js
β”‚   β”‚   β”‚   β”œβ”€β”€ StudentDetails.js
β”‚   β”‚   β”‚   └── Reports.js
β”‚   β”‚   β”œβ”€β”€ services/      # API service
β”‚   β”‚   β”œβ”€β”€ App.js
β”‚   β”‚   └── index.js
β”‚   └── package.json
β”œβ”€β”€ server/                 # Node.js backend
β”‚   β”œβ”€β”€ routes/            # API routes
β”‚   β”œβ”€β”€ database.js        # Database setup
β”‚   └── index.js          # Server entry point
β”œβ”€β”€ database/              # SQLite database (auto-created)
β”œβ”€β”€ .env                   # Environment variables
β”œβ”€β”€ package.json
└── README.md

Adding New Features

  1. Add a new activity type: Create route in server/routes/, add table in database.js, create form component in client/src/components/forms/

  2. Modify calculation logic: Update server/routes/calculations.js

  3. Add new student fields: Modify students table in database.js and update forms

πŸ› Troubleshooting

Database not created?

  • Ensure database/ directory exists or will be auto-created
  • Check write permissions

Port already in use?

  • Change PORT in .env file
  • Kill existing processes on ports 3000/5000

API connection failed?

  • Ensure backend is running on port 5000
  • Check proxy setting in client/package.json

πŸ“„ License

This project is open source and available under the MIT License.

πŸ‘₯ Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

About

Internal-Marks-Calculation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages