Thank you for your interest in contributing to GradGT! This document provides guidelines and instructions for contributing to the project.
There are many ways to contribute to GradGT, including:
- Adding new features
- Improving existing visualizations
- Fixing bugs
- Enhancing UI/UX
- Improving documentation
- Optimizing performance
Check out our Issues tab for specific tasks that need attention.
The project is built with Next.js and uses a modern React stack:
/src/app/- Next.js app router pages and layouts/src/components/- React components/src/lib/- Utility functions and API handlers/public/- Static assets/data/- Course and prerequisite data
- Node.js (v18 or higher)
- npm or yarn
- Git
We recommend using Visual Studio Code with the following extensions:
- ESLint
- Prettier
- Tailwind CSS IntelliSense
- Fork the repository
- Clone your fork:
git clone https://github.com/YourUsername/GradGT.git
cd GradGT- Install dependencies:
npm install
# or
yarn install- Start the development server:
npm run dev
# or
yarn dev- Visit
http://localhost:3000to see your changes
- Create a new branch for your feature/fix:
git checkout -b feature/your-feature-name- Make your changes
- Test your changes thoroughly
- Commit your changes with clear, descriptive messages
- Push to your fork
- Create a pull request
- Follow the existing code style
- Use TypeScript for type safety
- Use Tailwind CSS for styling
- Write clear comments for complex logic
- Keep components modular and reusable
- Run linting:
npm run lint- Ensure all tests pass:
npm run test- Format your code:
npm run format- Update documentation if needed
- Test your changes in both light and dark modes
- Verify mobile responsiveness
- Go to the GradGT repository
- Click "New Pull Request"
- Select your fork and branch
- Fill in the PR template:
- Clear title describing the change
- Detailed description of changes
- Reference any related issues
- Add screenshots if applicable
- List any breaking changes
Feel free to reach out to the maintainers or open an issue if you need help or have questions. We're here to help!