Thank you for your interest in contributing to SkillUp Tracker! This project is part of GirlScript Summer of Code 2025 and welcomes contributors of all experience levels. Whether you're a beginner or an experienced developer, there's a place for you here! 🎉
- Getting Started
- Ways to Contribute
- Development Setup
- Pull Request Process
- Coding Guidelines
- Issue Guidelines
- Community Guidelines
- Recognition
Before you start contributing, please:
- ⭐ Star this repository to show your support
- 🍴 Fork the repository to your GitHub account
- 📖 Read our Code of Conduct
- 🔍 Browse through existing Issues to find something that interests you
- 💬 Join our community discussions for questions and collaboration
- Report bugs using GitHub Issues
- Include screenshots, error messages, and steps to reproduce
- Use the bug report template when available
- Suggest new features through GitHub Issues
- Explain the use case and expected behavior
- Check if the feature aligns with project goals
- Fix bugs and implement new features
- Improve existing code quality and performance
- Add unit tests for new functionality
- Improve README, API docs, or code comments
- Write tutorials or guides
- Fix typos or unclear explanations
- Enhance the user interface design
- Improve user experience and accessibility
- Add responsive design features
- Node.js (v16 or higher)
- npm or yarn
- MongoDB (local or Atlas)
- Git
# Fork the repo on GitHub, then clone your fork
git clone https://github.com/YOUR_USERNAME/skillup-tracker.git
cd skillup-tracker# Navigate to backend directory
cd backend
# Install dependencies
npm install
# Create .env file with required variables
# DATABASE_URL=mongodb://localhost:27017/skillup-tracker
# JWT_SECRET=your_jwt_secret_here
# PORT=5000
# Start the backend server
npm start# Navigate to client directory (in a new terminal)
cd client
# Install dependencies
npm install
# Start the React development server
npm start- Backend should run on
http://localhost:5000 - Frontend should run on
http://localhost:3000 - Ensure both servers are running without errors
# Create and switch to a new feature branch
git checkout -b feature/your-feature-name
# or
git checkout -b fix/issue-number-description- Write clean, well-documented code
- Follow the coding guidelines below
- Test your changes thoroughly
- Commit with meaningful messages
# Use conventional commit format
git commit -m "feat: add user dashboard analytics"
git commit -m "fix: resolve login authentication issue"
git commit -m "docs: update API documentation"
git commit -m "style: improve responsive design"Commit Types:
feat: New featuresfix: Bug fixesdocs: Documentation changesstyle: UI/CSS changesrefactor: Code refactoringtest: Adding testschore: Maintenance tasks
# Push your branch to your fork
git push origin feature/your-feature-name
# Create a Pull Request on GitHub
# Use the PR template and fill in all sections- ✅ Descriptive title and detailed description
- ✅ Link related issues using
Closes #issue-number - ✅ Screenshots for UI changes
- ✅ All tests passing
- ✅ No merge conflicts
- ✅ Code review approval from maintainers
- Use ES6+ features and modern JavaScript
- Follow functional programming patterns where possible
- Use React Hooks instead of class components
- Implement proper error handling and loading states
- Use 2 spaces for indentation
- Use semicolons at the end of statements
- Use camelCase for variables and functions
- Use PascalCase for React components
- Keep functions small and focused (max 20-30 lines)
src/
├── components/ # Reusable components
├── pages/ # Page components
├── hooks/ # Custom React hooks
├── utils/ # Utility functions
├── services/ # API calls
├── contexts/ # React contexts
└── styles/ # CSS/styling files
- Use RESTful conventions
- Implement proper error handling with meaningful messages
- Add input validation and sanitization
- Include JSDoc comments for functions
- Follow MVC pattern in backend structure
- Search existing issues before creating new ones
- Use descriptive titles and detailed descriptions
- Add appropriate labels (bug, feature, enhancement, etc.)
- Include screenshots for UI-related issues
- Provide reproduction steps for bugs
- Comment on the issue before starting work and after being assigned
- Ask questions if requirements are unclear
- Update progress regularly in comments
- Link your PR when you submit it
- Follow our Code of Conduct
- Be patient with beginners and help them learn
- Provide constructive feedback in reviews
- Celebrate others' contributions
- Use clear and descriptive language
- Be responsive to comments and reviews
- Ask for help when you're stuck
- Share knowledge and help others
- Test your code before submitting
- Write meaningful commit messages
- Document complex logic with comments
- Follow established patterns in the codebase
If you have questions or need assistance:
- 📖 Check the README.md for project overview
- 🔍 Search through existing Issues and Discussions
- 💬 Create a new Discussion for general questions
- 🐛 Create an Issue for bugs or feature requests
- 📧 Reach out to maintainers (contact info in README)
By contributing to SkillUp Tracker, you agree that your contributions will be licensed under the MIT License.
Happy Contributing! 🎉
Let's build something amazing together! Your contributions make this project better for everyone in the learning community.
Made with ❤️ by the SkillUp Tracker community