Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Grade Data Management Functionality #7

Open
10 of 17 tasks
TKanX opened this issue Jan 12, 2025 · 0 comments · Fixed by #8
Open
10 of 17 tasks

Implement Grade Data Management Functionality #7

TKanX opened this issue Jan 12, 2025 · 0 comments · Fixed by #8
Assignees
Labels
enhancement ✨ New feature or request
Milestone

Comments

@TKanX
Copy link
Owner

TKanX commented Jan 12, 2025

Description:

Implementation of a complete grade data management system, including the following features:

  • Semester-level hierarchical data management (terms → courses → categories → tasks).
  • Basic academic data calculations (e.g., total scores, GPA).
  • Import/export functionality for academic data.
  • Integration with user settings for seamless data management.

The implementation includes both backend endpoints and frontend components to ensure a comprehensive and user-friendly grade management process.

Tasks:

Backend:

  1. Grade Management API Endpoints:
    • Create Semester:
      • Endpoint: POST /grades
      • Create a new semester with basic details.
    • Get All Semesters:
      • Endpoint: GET /grades
      • Fetch a list of semesters with basic details.
    • Get Semester Details:
      • Endpoint: GET /grades/:id
      • Fetch detailed data for a specific semester, including nested courses, categories, and tasks.
    • Update Semester Data:
      • Endpoint: PUT /grades/:id
      • Replace all data for a specific semester, including courses, categories, and tasks.
    • Partial Update of Semester Data:
      • Endpoint: PATCH /grades/:id
      • Apply JSON Patch updates to specific elements within a semester.
    • Delete Semester:
      • Endpoint: DELETE /grades/:id
      • Delete a specific semester by ID.
    • Export Specific Semester Data:
      • Endpoint: GET /grades/:id/export
      • Export detailed data of a specific semester as a JSON file.
    • Export All Semesters Data:
      • Endpoint: GET /grades/export
      • Export all semesters' data as a JSON file.
    • Import Semester Data:
      • Endpoint: POST /grades/import
      • Bulk import multiple semesters with nested data (courses, categories, tasks).
    • Data Validation:
      • Ensure input validation for all endpoints, especially for data consistency across nested elements (e.g., tasks should not conflict with calculated category scores).

Frontend:

  1. Create Components:

    • Semester Switcher:
      • Floating component for switching between semesters.
      • Includes basic management options (e.g., add, delete, rename semesters).
    • Semester Overview:
      • Display aggregated semester information, such as total GPA and scores.
  2. Create Pages:

    • Semester Management Page:
      • Multi-level data management interface for semesters, courses, categories, and tasks.
      • Allow users to add, edit, and delete elements within the hierarchy.
      • Provide real-time score calculation and GPA display.
    • Settings Page (Update Existing):
      • Add options for exporting and importing academic data.
      • Integrate import/export functionality with the backend APIs.
  3. Features:

    • Data Visualization:
      • Show calculated data such as GPA, total scores, and percentages.
    • Data Consistency Checks:
      • Ensure data integrity when adding or editing nested elements (e.g., tasks updating category scores).
  4. Integration with Backend:

    • API Integration:
      • Connect all frontend components to their respective backend endpoints.
@TKanX TKanX added the enhancement ✨ New feature or request label Jan 12, 2025
@TKanX TKanX added this to the v0.1 milestone Jan 12, 2025
@TKanX TKanX self-assigned this Jan 12, 2025
@TKanX TKanX moved this from Todo to In Progress in GradeAnalyzer Development Plan Jan 12, 2025
@TKanX TKanX linked a pull request Jan 24, 2025 that will close this issue
@TKanX TKanX closed this as completed in #8 Jan 25, 2025
@github-project-automation github-project-automation bot moved this from In Progress to Done in GradeAnalyzer Development Plan Jan 25, 2025
@TKanX TKanX reopened this Jan 25, 2025
@TKanX TKanX moved this from Done to In Progress in GradeAnalyzer Development Plan Jan 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement ✨ New feature or request
Projects
Development

Successfully merging a pull request may close this issue.

1 participant