Thank you for your interest in contributing! Here's how you can help.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/AniKotoAPI.git - Create a branch:
git checkout -b feature/amazing-feature - Make your changes
- Commit:
git commit -m 'feat: add amazing feature' - Push:
git push origin feature/amazing-feature - Open a Pull Request
# Install dependencies
npm install
# Start development server
npm run dev
# Server runs on http://localhost:4444AniKotoAPI/
├── server.js # Express entry point
├── src/
│ ├── configs/ # URL patterns, headers, ID mappings
│ ├── controllers/ # Route handlers
│ ├── extractors/ # HTML scrapers (Cheerio)
│ ├── helper/ # Cache utilities
│ └── routes/ # Express routes
├── public/ # Static files (landing page)
└── docs/ # API documentation
- Create extractor in
src/extractors/yourExtractor.js - Create controller in
src/controllers/yourController.js - Add route in
src/routes/apiRoutes.js - Update
docs/endpoints.mdwith documentation - Test with
curl http://localhost:4444/api/your-endpoint
- Use ES6+ features (import/export, async/await)
- Add JSDoc comments for new functions
- Follow existing patterns in the codebase
- Keep extractors focused on one task
Use Conventional Commits:
feat:new featurefix:bug fixdocs:documentation changesrefactor:code refactoringtest:adding testschore:maintenance
- Keep PRs focused on one feature or fix
- Update CHANGELOG.md with your changes
- Test your changes locally before submitting
- Follow existing code style
- Use GitHub Issues for bug reports
- Include steps to reproduce
- Include expected vs actual behavior
- Include your Node.js version
By contributing, you agree that your contributions will be licensed under the MIT License.