Thanks for your interest in contributing to Javaistic! We're excited to have you join our community of Java enthusiasts.
Before you start contributing, please give our repository a star! ⭐
This helps us grow our community and shows your support for the project. You can star the repo by clicking the ⭐ button at the top right of the repository page.
This document provides guidelines and information to help you contribute effectively to the Javaistic project.
- Getting Started
- Project Structure
- Development Setup
- Types of Contributions
- Content Guidelines
- Pull Request Process
- Code Style
- Resources
Before you begin, ensure you have the following installed:
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/javaistic/javaistic.git cd javaistic
javaistic/
├── content/
│ ├── docs/ # Java documentation files (.mdx)
│ └── programs/ # Java program examples (.mdx)
├── src/
│ ├── app/ # Next.js app directory
│ ├── components/ # React components
│ └── lib/ # Utility functions
└── public/ # Static assets
-
Install dependencies:
bun install
-
Start the development server:
bun run dev
-
Open http://localhost:3000 in your browser
-
Make your changes and see them live!
We welcome various types of contributions:
- Java Concepts: Add or improve explanations of Java concepts
- Code Examples: Provide clear, well-commented Java examples
- Tutorials: Create step-by-step guides for Java topics
- Sample Programs: Add practical Java programs with explanations
- Problem Solutions: Contribute solutions to common programming problems
- Best Practices: Share Java coding best practices and patterns
- Fix typos, grammar, or formatting issues
- Correct code examples or explanations
- Improve existing content clarity
- UI/UX improvements
- New website features
- Enhanced navigation or search
- Clear and Concise: Use simple, easy-to-understand language
- Beginner-Friendly: Assume readers are learning Java
- Consistent: Follow the existing tone and style
- Well-Structured: Use proper headings, lists, and formatting
- Complete: Provide full, runnable Java code
- Commented: Add helpful comments explaining the code
- Formatted: Use proper indentation and naming conventions
- Tested: Ensure all code examples work correctly
- Use
.mdxextension for content files - Include proper frontmatter metadata
- Follow the existing file naming conventions
- Place files in appropriate directories (
content/docs/orcontent/programs/)
For detailed examples, refer to these existing files in our repository:
📂 See: content/docs/variables-and-literals.mdx
📂 See: content/programs/add-two-integers.mdx
- Clear explanations with examples
- Well-structured headings
- Code snippets with proper syntax highlighting
Please ask first before starting work on any significant new features.
Create a feature request to discuss any major changes. This includes:
- Adding new Java documentation sections
- Creating new program categories
- Implementing new website features
-
Create an Issue: For bugs or enhancements, create an issue first
-
Branch: Create a new branch from
maingit checkout -b feature/your-feature-name
-
Develop: Make your changes following our guidelines
-
Test: Ensure your changes work correctly
-
Commit: Use clear, descriptive commit messages
git commit -m "feat: add arrays tutorial with examples" # or git commit -m "fix: correct syntax error in example" # or git commit -m "style: improve code formatting"
-
Push: Push your branch to your fork
-
Pull Request: Create a PR with a clear description
- ✅ Link to related issue (if applicable)
- ✅ Clear description of changes
- ✅ Screenshots for UI changes
- ✅ Test your changes locally
- ✅ Follow code style guidelines
- ✅ Update documentation if needed
- Run
bun formatornpm run formatbefore committing - Use Prettier for consistent formatting
- Follow existing code patterns
Use conventional commit format with scope when possible:
Format: type(scope): description
feat: new feature or contentfix: bug fix or correctiondocs: documentation changesstyle: formatting, no code changerefactor: code change that neither fixes bug nor adds featuretest: adding or modifying testschore: maintenance tasks
docs: for documentation content changesprograms: for Java program examplesui: for user interface improvementscomponents: for React component changescontent: for general content updatesconfig: for configuration file changes
feat(docs): add inheritance tutorial with examplesfeat(programs): add binary search implementationfix(docs): correct syntax error in loops exampledocs(contributing): update setup instructionsstyle(programs): improve code formatting in sorting examplesfix(ui): resolve mobile navigation issuechore(deps): update dependencies to latest versions
feat: add new Java concept explanationfix: correct syntax error in exampledocs: update installation instructionsstyle: improve code formatting
- Review our Code of Conduct
- Check GSSoC'25 Contribution Rules if participating in GSSoC 2025
- Be respectful and helpful to other contributors
- Ask questions if you're unsure about anything
All contributors will be recognized in our contributors section. Thank you for helping make Java learning accessible to everyone!
Happy Contributing! 🎯
If you have any questions, feel free to open a discussion or reach out to the maintainers.