-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
Objective
Design and implement a comprehensive Student Marksheet Management System that demonstrates advanced JavaScript programming skills, focusing on object-oriented programming, data manipulation, and performance tracking.
Assignment Requirements
Class Design: StudentMarksheet
Create a robust StudentMarksheet class with the following specifications:
-
Constructor Requirements
- Accept student details: full name, student ID, and subject marks
- Implement comprehensive input validation
- Name must be at least two words
- Student ID must be a 6-digit positive number
- Minimum of 5 subjects required
- Subject marks must be between 0-100
-
Performance Calculation Methods
Develop methods to calculate:- Total marks across all subjects
- Average marks
- Highest and lowest subject marks
- Performance grade (A, B, C, D, F)
- Student rank based on total marks
-
Advanced Features
Implement the following advanced functionalities:- Weighted average calculation for subjects
- Detailed performance report generation
- Comparative student ranking method
- Error handling for invalid inputs
Specific Method Requirements
validateStudentData()
- Perform comprehensive input validation
- Throw specific, informative error messages for validation failures
- Ensure data integrity before object creation
generatePerformanceReport()
- Provide a detailed performance analytics object
- Include total marks, average, grade, and ranking information
calculateWeightedAverage()
- Accept subjects with different weight coefficients
- Calculate a weighted average score
generateDetailedReport()
- Create a human-readable performance report
- Include motivational messages based on performance
- Use template literals for formatting
Static Method compareStudents()
- Accept an array of student objects
- Rank students based on total marks
- Implement tie-breaking logic
Bonus Challenge Extensions
- Implement additional error handling mechanisms
- Create a method to track student progress over multiple terms
- Add functionality to export marksheet to different formats (JSON, CSV)
- Develop a teacher remarks/comments system
Evaluation Criteria
- Functional Completeness: 40%
- Code Quality & Documentation: 20%
- Error Handling: 15%
- Advanced Feature Implementation: 15%
- Bonus Challenges: 10%
Submission Guidelines
- Submit a single JavaScript file
- Include comprehensive comments explaining your implementation
- Provide a brief documentation explaining key design decisions
- Include example usage demonstrating all implemented features
Recommended Approach
- Start with basic class structure and validation
- Implement core performance calculation methods
- Add advanced features incrementally
- Thoroughly test each method with various input scenarios
Learning Outcomes
- Object-Oriented Programming in JavaScript
- Advanced data validation techniques
- Performance tracking and analysis
- Error handling and robust code design
- Comprehensive system design
Good Luck and Happy Coding!
Metadata
Metadata
Assignees
Labels
No labels