Skip to content

Latest commit

 

History

History
286 lines (195 loc) · 10.5 KB

CONTRIBUTING.md

File metadata and controls

286 lines (195 loc) · 10.5 KB

Contributing to Station Guide 🏅

Thank you for considering contributing to * Station Guide *! GirlScript Summer of Code (GSSoC) welcomes contributors of all skill levels, and we are excited to collaborate with you to make this project better.


Code of Conduct 📃

This project adheres to the Code of Conduct. By participating, you are expected to uphold this code. Please report any unacceptable behavior to the project maintainers.


Need Help with the Basics? 🤔

If you're new to Git and GitHub, no worries! Here are some useful resources:


Project Structure 📂

STATIONGUIDE/
├── .github/                  # GitHub-related configurations such as workflows, issue templates, etc.
│   
├── backend/                  # Backend code, APIs, and server-side logic.
│   
├── frontend/                 # Frontend code, UI components, and client-side logic.
│   
├── .all-contributorsrc       # Configuration file for the All Contributors specification.
│     
├── .gitattributes            # Git configuration for handling attributes like line endings.
│   
├── .gitignore                # Specifies files and directories that Git should ignore.
│   
├── CODE_OF_CONDUCT.md        # Guidelines for acceptable behavior in the project.
│   
├── CONTRIBUTING.md           # Instructions for contributing to the project.
│   
├── docker-compose.yml        # Docker Compose configuration file for setting up multi-container Docker applications.
│   
├── Learn.md                  # Documentation or guides for learning aspects of the project.
│   
├── LICENSE                   # License information for the project.
├── package-lock.json         # Lock file generated by npm to ensure consistent dependency installation.
├── package.json              # Project's metadata and dependencies for npm.
├── README.md                 # Overview and instructions for the project.
├── repo_structure.txt        # Description or details of the project's repository structure.
├── SECURITY.md               # Security policies and guidelines for reporting vulnerabilities.
├── StationGuide.md           # Documentation related to the project's station guide.
├── StationGuideFigma.md      # Documentation or design files related to the station guide using Figma.
├── tailwind.config.js        # Configuration file for Tailwind CSS.

How to Contribute 🎯


Suggesting Enhancements 🔎

We welcome suggestions for improvements! Please use the same GitHub Issue Tracker and label the issue as an "Enhancement." Provide as much context as possible, including:

  1. The current state and why it's insufficient.
  2. A detailed proposal or solution, if you have one.
  3. Any alternative solutions you have considered.

Pull Request Process 🚀

When submitting a pull request, please adhere to the following:

  1. Self-review your code before submission. 😀
  2. Include a detailed description of the functionality you’ve added or modified.
  3. Comment your code, especially in complex sections, to aid understanding.
  4. Add relevant screenshots to assist in the review process.
  5. Submit your PR using the provided template and hang tight; we'll review it as soon as possible! 🚀

Issue Report Process 📌

To report an issue, follow these steps:

  1. Navigate to the project's issues section :- Issues
  2. Provide a clear and concise description of the issue.
  3. Wait until someone looks into your report.
  4. Begin working on the issue only after you have been assigned to it. 🚀

Scoring System ⭐

As part of GSSoC, contributors will earn points based on the complexity and impact of their contributions. Here's how points are awarded:

  • Level 1 (10 points): Minor bug fixes, documentation improvements, or small enhancements.
  • Level 2 (25 points): Medium-level features or bug fixes that require more in-depth work, such as improving a module, adding new functionality, or enhancing testing.
  • Level 3 (45 points): Major contributions like implementing significant features, refactoring large parts of the codebase, or fixing critical bugs.

All contributions will be reviewed, and the maintainers will assign points based on the effort and impact.


Development Guidelines 📖

  • Follow the project's code style (describe the language or framework conventions).
  • Write clear, maintainable, and well-documented code.
  • Ensure tests cover your changes.
  • Run linting and formatting tools as required.

First Pull Request ✨

  1. Star this repository Click on the top right corner marked as Stars at last.

  2. Fork this repository Click on the top right corner marked as Fork at second last.

  3. Clone the forked repository

git clone https://github.com/<your-github-username>/StationGuide.git
  1. Navigate to the project directory
cd StationGuide
  1. Create a new branch
git checkout -b <your_branch_name>
  1. To make changes
git add .
  1. Now to commit
git commit -m "add comment according to your changes or addition of features inside this"
  1. Push your local commits to the remote repository
git push -u origin <your_branch_name>
  1. Create a Pull Request

  2. Congratulations! 🎉 you've made your contribution


Running the Development Server


Frontend:

  • Open a terminal or command prompt window.
  • Navigate to the frontend directory:
cd frontend
  • Start the frontend development server :
npm run dev

This will typically launch the React application on http://localhost:3000 (or the specified port) in your browser.


Backend:

  • Open another terminal or command prompt window (separate from the frontend window).
  • Navigate to the backend directory:
cd backend

Start the backend development server (typically using nodemon server.js or a similar command):

npm run start

Alternatively, contribute using GitHub Desktop 🖥️

  1. Open GitHub Desktop: Launch GitHub Desktop and log in to your GitHub account if you haven't already.

  2. Clone the Repository:

  • If you haven't cloned the Project-Guidance repository yet, you can do so by clicking on the "File" menu and selecting "Clone Repository."
  • Choose the Project-Guidance repository from the list of repositories on GitHub and clone it to your local machine.

3.Switch to the Correct Branch:

  • Ensure you are on the branch that you want to submit a pull request for.
  • If you need to switch branches, you can do so by clicking on the "Current Branch" dropdown menu and selecting the desired branch.
  1. Make Changes:
  • Make your changes to the code or files in the repository using your preferred code editor.
  1. Commit Changes:
  • In GitHub Desktop, you'll see a list of the files you've changed. Check the box next to each file you want to include in the commit.
  • Enter a summary and description for your changes in the "Summary" and "Description" fields, respectively. Click the "Commit to " button to commit your changes to the local branch.
  1. Push Changes to GitHub:
  • After committing your changes, click the "Push origin" button in the top right corner of GitHub Desktop to push your changes to your forked repository on GitHub.
  1. Create a Pull Request:
  • Go to the GitHub website and navigate to your fork of the Project-Guidance repository.
  • You should see a button to "Compare & pull request" between your fork and the original repository. Click on it.
  1. Review and Submit:
  • On the pull request page, review your changes and add any additional information, such as a title and description, that you want to include with your pull request.
  • Once you're satisfied, click the "Create pull request" button to submit your pull request.
  1. Wait for Review: Your pull request will now be available for review by the project maintainers. They may provide feedback or ask for changes before merging your pull request into the main branch of the Project-Guidance repository.

For Help And Support 💬

  • Admin :- Dhairya Gothi
  • Contact :- Email

Good Coding Practices 🧑‍💻

  1. Follow the Project's Code Style

    • Maintain consistency with the existing code style (indentation, spacing, comments).
    • Use meaningful and descriptive names for variables, functions, and classes.
    • Keep functions short and focused on a single task.
    • Avoid hardcoding values; instead, use constants or configuration files when possible.
  2. Write Clear and Concise Comments

    • Use comments to explain why you did something, not just what you did.
    • Avoid unnecessary comments that state the obvious.
    • Document complex logic and functions with brief explanations to help others understand your thought -process.
  3. Keep Code DRY (Don't Repeat Yourself)

    • Avoid duplicating code. Reuse functions, methods, and components whenever possible.
    • If you find yourself copying and pasting code, consider creating a new function or component.
  4. Write Tests

    • Write unit tests for your functions and components.
    • Ensure your tests cover both expected outcomes and edge cases.
    • Run tests locally before making a pull request to make sure your changes don’t introduce new bugs.
  5. Code Reviews and Feedback

    • Be open to receiving constructive feedback from other contributors.
    • Conduct code reviews for others and provide meaningful suggestions to improve the code.
    • Always refactor your code based on feedback to meet the project's standards.

Thank you for contributing 💗

We truly appreciate your time and effort to help improve our project. Feel free to reach out if you have any questions or need guidance. Happy coding! 🚀