Ways to Contribute
Report Bugs
Found an issue? Report it on GitHub Issues
Suggest Features
Have an idea? Open a feature request
Improve Documentation
Help make our docs better and clearer
Write Code
Fix bugs, add features, or improve performance
Getting Started
Prerequisites
Before you begin, make sure you have:- Node.js (v18 or higher recommended)
- Git for version control
- MongoDB (if working on database features)
- A GitHub account
Fork and Clone
-
Fork the repository on GitHub
- Visit https://github.com/nagcas/TerraQuakeApi
- Click the “Fork” button in the top right
- Clone your fork to your local machine:
- Add the upstream remote to stay in sync:
Set Up Development Environment
Backend Setup
http://localhost:5001 by default.
Frontend Setup
http://localhost:5173 by default.
Development Workflow
- Create a new branch for your feature or fix:
-
Make your changes
- Write clean, documented code
- Follow existing code style and conventions
- Add tests for new features
- Test your changes
- Commit your changes
Use conventional commit messages:
feat:for new featuresfix:for bug fixesdocs:for documentation changesrefactor:for code refactoringtest:for adding testschore:for maintenance tasks
- Push to your fork
- Open a Pull Request
- Go to the original repository on GitHub
- Click “New Pull Request”
- Select your fork and branch
- Fill out the PR template with details
- Submit for review
Pull Request Guidelines
Before Submitting
PR Template
When opening a pull request, please include:Code Style Guidelines
JavaScript/Node.js
This project uses StandardJS for code style:General Principles
- Keep code clean and documented
- Write self-explanatory code with clear variable names
- Add comments for complex logic or algorithms
- Follow DRY (Don’t Repeat Yourself) principle
- Use consistent formatting throughout
- Handle errors gracefully with meaningful messages
Testing
Running Tests
Writing Tests
When adding new features, please include tests:Code of Conduct
This project follows a Code of Conduct to ensure a welcoming environment for all contributors.Our Standards
- Be respectful and considerate of others
- Be collaborative and help fellow contributors
- Accept constructive criticism gracefully
- Focus on what’s best for the community
- Show empathy towards other community members
Unacceptable Behavior
- Harassment, discrimination, or offensive comments
- Trolling, insulting, or derogatory remarks
- Publishing others’ private information
- Other conduct that’s inappropriate in a professional setting
Community
Join the Discussion
Discord Community
Join our Discord server to connect, share ideas, and collaborate with other contributors
Get Help
If you need help or have questions:- Check existing documentation and code comments
- Search GitHub Issues for similar questions
- Ask in Discord for real-time community support
- Open a GitHub Discussion for broader topics
- Create an Issue if you’ve found a bug
Hacktoberfest 2025
TerraQuake API is participating in Hacktoberfest 2025!All contributions during October count toward the event. Look for issues labeled
hacktoberfest for suitable tasks.Good First Issues
New to the project? Look for issues labeled:good first issue- Beginner-friendly tasksdocumentation- Documentation improvementshelp wanted- Tasks where we need assistance
View Issues
Browse open issues and find something to work on
Project Structure
Key Technologies
Backend
- Express.js - Web framework
- MongoDB - Database (planned)
- Mongoose - ODM for MongoDB
- Axios - HTTP client for INGV data
- JWT - Authentication (future)
- Swagger - API documentation
Frontend
- React 19 - UI library
- Vite - Build tool
- Tailwind CSS 4 - Styling
- React Router - Navigation
Recognition
All contributors are recognized in our project:- Listed in the README credits section
- Mentioned in release notes for significant contributions
- Featured in the community Discord
Questions?
Still have questions about contributing?GitHub Issues
Ask questions or report issues
Discord Chat
Get real-time help from the community