diff --git a/README.md b/README.md index 74872fd..e228393 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,192 @@ -# React + TypeScript + Vite - -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. - -Currently, two official plugins are available: - -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh - -## Expanding the ESLint configuration - -If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: - -- Configure the top-level `parserOptions` property like this: - -```js -export default tseslint.config({ - languageOptions: { - // other options... - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - }, -}) -``` - -- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` -- Optionally add `...tseslint.configs.stylisticTypeChecked` -- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: - -```js -// eslint.config.js -import react from 'eslint-plugin-react' - -export default tseslint.config({ - // Set the react version - settings: { react: { version: '18.3' } }, - plugins: { - // Add the react plugin - react, - }, - rules: { - // other rules... - // Enable its recommended rules - ...react.configs.recommended.rules, - ...react.configs['jsx-runtime'].rules, - }, -}) -``` + + + + + +[![Contributors][contributors-shield]][contributors-url] +[![Forks][forks-shield]][forks-url] +[![Stars][stars-shield]][stars-url] +[![Issues][issues-shield]][issues-url] +[![GNU GPLv3 License][license-shield]][license-url] + + + + +# Monash Grades Calculator + +A simple calculator that helps Monash University students track their academic progress + +> **:warning: This is not an official Monash University tool** + +[Try it out](https://liangdi.dev/monash-grades-calculator/) · +[Report Bug](https://github.com/ligsnf/monash-grades-calculator/issues/new?labels=bug) · +[Request Feature](https://github.com/ligsnf/monash-grades-calculator/issues/new?labels=enhancement) + + + + +
+
+ Table of Contents +
    +
  1. About The Project + +
  2. +
  3. + Getting Started + +
  4. +
  5. Known Issues
  6. +
  7. Contributing
  8. +
  9. License
  10. +
+
+
+ + + + +## About The Project + +Using Monash's official calculation methods, this calculator computes both your GPA and WAM in one place. + +### Why This Calculator + +The existing separate calculators for GPA and WAM require students to input their results multiple times. This calculator was created to provide a streamlined experience where you can: +- Calculate both GPA and WAM simultaneously +- Import results directly via CSV +- See calculations update in real-time + +### Official Monash References + +- [Results and Grades Legend](https://www.monash.edu/students/admin/assessments/results/results-legend) +- [GPA Calculation Method](https://www.monash.edu/students/admin/assessments/results/gpa) +- [WAM Calculation Method](https://www.monash.edu/students/admin/assessments/results/wam) + +### Features + +- Real-time GPA and WAM calculations +- CSV result import support +- Manual grade entry +- User-friendly interface +- Privacy-focused (all calculations performed locally) + +### Built With + +[![React][React.js]][React-url] +[![Vite][Vite.js]][Vite-url] +[![Tailwind][Tailwind.css]][Tailwind-url] +[![Shadcn/ui][Shadcn.ui]][Shadcn-url] + +

(back to top)

+ + + + +## Getting Started + +This guide will help you set up the app locally on your machine. Follow these simple steps to get a local copy up and running. + +### Prerequisites + +Make sure you have Node.js (version 20 or higher) installed on your system. You can download it from [nodejs.org](https://nodejs.org/). + +* npm (usually comes with Node.js) + ```sh + npm install npm@latest -g + ``` + +### Installation + +1. Clone the repo + ```sh + git clone https://github.com/ligsnf/monash-grades-calculator + ``` +2. Navigate to the project directory + ```sh + cd monash-grades-calculator + ``` +3. Install NPM packages + ```sh + npm install + ``` +4. Start the development server + ```sh + npm run dev + ``` +5. Open your browser and navigate to the URL shown in the terminal (usually http://localhost:5173/monash-grades-calculator/) + +

(back to top)

+ + + + +## Known Issues + +- Due to GitHub Pages hosting limitations, direct navigation to routes (e.g., /about) will trigger a 404 error. A redirect has been implemented to handle this by returning users to the homepage. +- In iOS Safari, the site icon may revert to a default letter when navigating between pages. This is a known Safari limitation with Single Page Applications (SPAs), affecting many web applications, and is not specific to this calculator. + +

(back to top)

+ + + +## Contributing + +Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**. + +If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". +Don't forget to give the project a star! Thanks again! + +1. Fork the Project +2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) +3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) +4. Push to the Branch (`git push origin feature/AmazingFeature`) +5. Open a Pull Request + +### Top contributors: + + + contrib.rocks image + + +

(back to top)

+ + + + +## License + +Distributed under the GNU GPLv3 License. See [`LICENSE`](https://github.com/ligsnf/monash-grades-calculator/blob/main/LICENSE) for more information. + +

(back to top)

+ + + + + +[contributors-shield]: https://img.shields.io/github/contributors/ligsnf/monash-grades-calculator.svg?style=for-the-badge +[contributors-url]: https://github.com/ligsnf/monash-grades-calculator/graphs/contributors +[forks-shield]: https://img.shields.io/github/forks/ligsnf/monash-grades-calculator.svg?style=for-the-badge +[forks-url]: https://github.com/ligsnf/monash-grades-calculator/network/members +[stars-shield]: https://img.shields.io/github/stars/ligsnf/monash-grades-calculator.svg?style=for-the-badge +[stars-url]: https://github.com/ligsnf/monash-grades-calculator/stargazers +[issues-shield]: https://img.shields.io/github/issues/ligsnf/monash-grades-calculator.svg?style=for-the-badge +[issues-url]: https://github.com/ligsnf/monash-grades-calculator/issues +[license-shield]: https://img.shields.io/github/license/ligsnf/monash-grades-calculator.svg?style=for-the-badge +[license-url]: https://github.com/ligsnf/monash-grades-calculator/blob/main/LICENSE +[React.js]: https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB +[React-url]: https://react.dev/ +[Vite.js]: https://img.shields.io/badge/Vite-646CFF?style=for-the-badge&logo=vite&logoColor=FFD022 +[Vite-url]: https://vite.dev/ +[Tailwind.css]: https://img.shields.io/badge/Tailwind-0B1120?style=for-the-badge&logo=tailwind-css&logoColor=38BDF8 +[Tailwind-url]: https://tailwindcss.com/ +[Shadcn.ui]: https://img.shields.io/badge/shadcn%2Fui-000000?style=for-the-badge&logo=shadcnui&logoColor=white +[Shadcn-url]: https://ui.shadcn.com/ diff --git a/src/routes/about.lazy.tsx b/src/routes/about.lazy.tsx index 033d43e..28aa0a8 100644 --- a/src/routes/about.lazy.tsx +++ b/src/routes/about.lazy.tsx @@ -21,8 +21,8 @@ function About() { efficient and user-friendly alternative to the existing separate calculators.

-

- Note: This is an unofficial tool and while calculations are based on +

+ Note: This is an unofficial tool and while calculations are based on Monash University's published methodologies, results should be verified against official records.