{"id":23148534,"url":"https://github.com/tkanx/grade-analyzer","last_synced_at":"2025-04-04T14:10:52.951Z","repository":{"id":267235506,"uuid":"900399456","full_name":"TKanX/grade-analyzer","owner":"TKanX","description":"GradeAnalyzer is a user-friendly tool that helps students track, analyze, and improve academic performance. It offers GPA calculation, performance tracking, and goal-setting features, enabling students to monitor progress and achieve their educational goals.","archived":false,"fork":false,"pushed_at":"2025-01-25T00:34:08.000Z","size":2627,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T23:35:03.741Z","etag":null,"topics":["academic-tools","data-analytics","education-tools","grade-analysis","grade-calculator","grade-tracker","nodejs","webapp"],"latest_commit_sha":null,"homepage":"https://gdanl.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TKanX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-08T17:18:15.000Z","updated_at":"2025-01-25T00:34:14.000Z","dependencies_parsed_at":"2024-12-27T00:20:32.194Z","dependency_job_id":"641045ca-6c2d-4fe3-9301-1ab7bea8c818","html_url":"https://github.com/TKanX/grade-analyzer","commit_stats":null,"previous_names":["tkanx/grade-analyzer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TKanX%2Fgrade-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TKanX%2Fgrade-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TKanX%2Fgrade-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TKanX%2Fgrade-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TKanX","download_url":"https://codeload.github.com/TKanX/grade-analyzer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247190257,"owners_count":20898702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["academic-tools","data-analytics","education-tools","grade-analysis","grade-calculator","grade-tracker","nodejs","webapp"],"created_at":"2024-12-17T17:12:00.761Z","updated_at":"2025-04-04T14:10:52.916Z","avatar_url":"https://github.com/TKanX.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GradeAnalyzer\n\nGradeAnalyzer is a powerful and user-friendly tool designed to help students track, analyze, and improve their academic performance. With features such as GPA calculation, performance tracking, and goal-setting, this tool provides an in-depth understanding of academic progress, allowing students to set and achieve their educational goals efficiently.\n\n\u003e This project is structured as a **full-stack application** with separate **frontend** and **backend** components.\n\n## Features\n\n- **Multi-Level Data Input:** Supports input at different levels (task, category, subject), allowing flexibility for different user preferences.\n- **Customizable Grade Mode:** Customizable grading mode and grade ranges to fit different academic systems and course requirements. Discrete and continuous grading scales are supported.\n- **GPA Calculation (Weighted \u0026 Unweighted):** Automatically calculates GPA based on weighted or unweighted methods, taking into account advanced courses like AP and Honors.\n- **Grade Range Customization:** Users can define grade ranges dynamically, with support for different GPA scales such as honors and advanced courses.\n- **Performance Visualization:** Interactive charts and graphs (pie charts, bar charts, line graphs) to display performance across subjects, categories, and tasks.\n- **Goal Setting:** Set and track academic goals such as GPA targets, subject-specific goals, and category-specific targets.\n- **User-Friendly Interface:** Clean and intuitive design to ensure easy navigation and data input.\n\n## Prerequisites\n\n- Node.js\n- MongoDB\n- SMTP Server (for sending emails)\n- Nginx (for reverse proxy)\n\n## Tech Stack\n\n- **Backend:** Node.js, Express, MongoDB, JWT, Nodemailer\n- **Frontend:** Node.js, Express, EJS, Tailwind CSS, Chart.js\n\n## Installation\n\n1. **Clone the repository**\n\n   ```bash\n   git clone https://github.com/TKanX/grade-analyzer.git \u0026\u0026 cd grade-analyzer\n   ```\n\n2. **Setup the backend**\n\n   1. Create a `.env` file in the `backend` directory and add the following environment variables:\n\n      ```env\n      PORT=5000 # Port number for the server (default: 5000)\n      HOST=localhost # Host address for the server (default: localhost)\n      MONGODB_URI=mongodb://localhost:27017/grade-analyzer # MongoDB connection URI\n      JWT_SECRET=secret # Secret key for JWT token generation\n      SMTP_HOST=smtp.gmail.com # SMTP server host\n      SMTP_PORT=587 # SMTP server port\n      SMTP_SECURE=false # SMTP secure connection (default: false)\n      SMTP_USERNAME=user # SMTP username\n      SMTP_PASSWORD=pass # SMTP password\n      SMTP_SENDER=no-reply@example.com # Email sender address\n      ```\n\n      \u003e **Note:** The SMTP host, port, username, password, and sender address should be replaced with your own SMTP server details.\n\n   2. **Install the dependencies**\n\n      ```bash\n      cd backend # Move to the backend directory\n      npm install # Install the dependencies\n      ```\n\n   3. **Start the backend server**\n\n      ```bash\n      npm start # Start the backend server\n      ```\n\n3. **Setup the frontend**\n\n   1. Create a `.env` file in the `frontend` directory and add the following environment variables:\n\n      ```env\n      PORT=3000 # Port number for the server (default: 3000)\n      HOST=localhost # Host address for the server (default: localhost)\n      ```\n\n   2. **Install the dependencies**\n\n      ```bash\n      cd ../frontend # Move to the frontend directory\n      npm install # Install the dependencies\n      ```\n\n   3. **Build the Tailwind CSS**\n\n      ```bash\n      npm run build:css # Build the Tailwind CSS\n      ```\n\n   4. **Start the frontend server**\n\n      ```bash\n      npm start # Start the frontend server\n      ```\n\n   \u003e **Note:** The configuration to connect to the backend server is already set in the frontend application. If you want to change the backend server address, configure the server URL in the `frontend/public/js/app.js` file (Default: `/api`).\n\n4. **Setup Nginx**\n\n   1. Configure Nginx as a reverse proxy `/api` to the backend server. (Default: `http://localhost:5000`)\n   2. Configure Nginx to serve the frontend application. (Default: `http://localhost:3000`)\n   3. Restart Nginx to apply the changes.\n\n5. **Access the application**\n\n   Open the browser and navigate to the server address to `http://localhost` to access the GradeAnalyzer application. (Use the configured Nginx server address if applicable)\n\n## Usage\n\nThe GradeAnalyzer application provides a RESTful API to interact with the GradeAnalyzer backend. The API endpoints are documented in the [API.md](backend/docs/API.md) file.\n\n## License\n\nThis project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftkanx%2Fgrade-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftkanx%2Fgrade-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftkanx%2Fgrade-analyzer/lists"}