dear-digital / linter

3 stars 14 forks source link

Linter: AI-Driven Code Optimization Tool

Project Description:

This project aims to develop a code optimization tool utilizing artificial intelligence. The tool will be designed to identify potential areas for code optimization, detect bugs, and suggest improvements. It will be designed to function as a standalone application, a VS Code extension, or a GitHub Action, contributing towards enhancing the developer experience. In addition to AI-driven functionalities, the tool will also have a suite of features that can be used independently, such as linting instructions.

πŸš€ Internship Overview: (Updated!)

This internship offers an opportunity for aspiring developers to contribute to an open-source project and gain real-world development experience. Interns will have the opportunity to work on various aspects of the project, with a focus on their areas of interest. Evaluation will be based on the quantity and quality of their contributions, quantified through a point-based system.

Updated Project Workflow (New!)

Starting from now, the project will operate under a milestone-based approach. Each week will have specific milestones set by the project lead, and issues will be focused on accomplishing those milestones. Interns with more than 100 points on the leaderboard will be assigned tasks by the project lead, which they are expected to complete within the week.

Weekly Commitments and Stipends (New!)

🎯 Points System: (Updated!)

Each contribution you make towards the project earns you points. This includes, but is not limited to:

  1. No More Self-Created Issues: From now on, issues will be created only by the project lead.
  2. Issue Assignment: Issues are assigned to interns who have more than 100 points on the leaderboard.
  3. Open Issues: Some issues may be left unassigned. If you propose a correct solution/intent in the comments, the issue will be assigned to you. This way you can reach 100 points if you are a beginner, Lookout for issues with label "Open Task"
  4. Weekly Milestones: Focus on the week's milestones when working on assigned issues.

The point values for each task will be determined based on its complexity and significance to the project. The points leaderboard will be updated daily and can be viewed in the Points.md file.

πŸŽ“ Mentorship and Feedback Sessions: (Updated!)

There will be no more live feedback sessions, Any discussion can be carried out in the discussions channel.

🀝 How to Contribute:

Go through the CONTRIBUTING.md file, where all the guidelines have been mentioned that will guide you to make your contribution. The project follows a standard fork-and-pull model for contributions via GitHub. Here's a step-by-step guide:

  1. Fork the Repository: Start by forking the main project repository to your GitHub account.
  2. Clone the Repository: Once forked, clone the repository to your local machine.
  3. Set Up the Project: Follow the setup instructions to get the project running locally.
  4. Create a Branch: Create a new branch for each issue you work on. This keeps your work organized and prevents conflicts.
  5. Make Changes: Implement your feature or bug fix on the branch you created.
  6. Commit and Push Changes: Once your changes are ready, commit them with a meaningful commit message, and push the branch to your forked repository.
  7. Submit a Pull Request: From your repository, submit a pull request to the main repository. In the PR description, include a detailed explanation of your changes and link the PR to the corresponding issue in the main repository.

πŸ“œ Code of Conduct:

We are committed to fostering a community that’s inclusive, respectful, and productive. All participants in the project are expected to adhere to our Code of Conduct, which includes:

  1. Respect: Treat everyone with kindness and respect. No forms of harassment, discrimination, or inappropriate behavior are tolerated.
  2. Collaboration: Be open to feedback and be respectful when providing it. Strive to help others when you can and recognize everyone's contributions.
  3. Inclusivity: Foster an environment that welcomes and supports people of all backgrounds and identities. This includes, but is not limited to, members of any race, ethnicity, culture, national origin, color, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion, and mental and physical ability.

Breaching this Code of Conduct may lead to consequences including, but not limited to, removal from the project and forfeiture of accumulated points.

πŸ“š FAQ: (Updated!)

Q: How do I earn points?
A: Points are earned by performing tasks such as raising issues for bugs, adding features, making suggestions, or providing solutions. The points assigned to each task will be determined by the project lead, based on the complexity and significance of the task.

Q: How are issues assigned now?
A: Issues will be created and assigned by the project lead based on weekly milestones and leaderboard standings. For newcomers look for issues labeled "Open Task" and comment your approach to solve the issue. Issue will be assigned on a first come basis as long as their approach seems correct.

Q: How do I qualify for the stipend or full-time opportunity?
A: Maintain a consecutive weekly point record as mentioned under 'Weekly Commitments and Stipends'.

Q: What happens if I encounter a problem while setting up the project?
A: You can raise an issue on GitHub detailing the problem you're encountering. Additionally, you can bring up these issues in the discussion channel.

Q: How do I advance to a higher access level?
A: Advancement to a higher access level is based on your accumulated points and the quality of your contributions. The decision to elevate your access level will be made by the project lead.

Q: What should I do if I feel that the Code of Conduct has been violated?
A: If you believe there has been a violation of the Code of Conduct, please raise the issue with the project lead immediately. All reports will be handled with the utmost discretion and seriousness.

πŸ“‹ Points System Overview (Expanded)

The Points System is designed to quantify your contributions to the project. Here's an in-depth look into how this system operates:

πŸ—“οΈ Task Assignment

  1. πŸ‘‘ Leaderboard Review: Every Monday, the project lead will review the leaderboard, and issues that are submitted by the interns.
  2. πŸ” Task Prioritization: Interns with more than 100 points on the leaderboard will be prioritized for task assignments.
  3. 🎯 Issue Assignment: Based on the weekly milestones and leaderboard standings, issues will be created and assigned by the project lead. Each issue will come with a points value based on its estimated complexity and importance.
  4. ⚠️ Special Tasks: Occasionally, some tasks might be labeled as "critical" or "urgent." These tasks will carry extra points and should be prioritized.

πŸ“Š Point Calculation

  1. πŸ… Base Points: Every issue will carry base points that range from 10 to 100, depending on complexity.
  2. 🌟 Bonus Points: Additional points may be awarded for exceptional work, quick turnaround, or solving critical/urgent issues.
  3. β›” Penalty Points: Points may be deducted for late submissions, incomplete tasks, or subpar quality.
  4. ❓ Unassigned Issues: If you suggest a correct solution for an unassigned issue in the comments and it gets assigned to you, you will receive 5 bonus points.

πŸ“ˆ Point Tracking

  1. πŸ“† weekly Update: Points are updated when the issue is reviewed and reflected in the Points.md file, accessible to all project members.
  2. πŸ”— Weekly Summary: A weekly summary will be sent out every Sunday evening that provides an overview of points earned by each intern.
  3. πŸ” Audit: Interns can request an audit of their points if they feel there has been an error in calculation. The project lead will review the request within 48 hours.
  4. πŸ–οΈ Break Weeks: Any week where an intern does not achieve at least 375 points will not be counted towards the internship and will be considered a break week.

πŸ’° Weekly Commitments and Stipends

  1. πŸ“ 375 Points Minimum: Interns are required to accumulate at least 375 points per week to stay active in the internship.
  2. πŸŽ‰ Four-Week Stipend: Interns who consistently achieve the weekly minimum for 4 consecutive weeks will earn a 120EUR stipend.
  3. 🌈 Eight-Week Opportunity: After accumulating points for 8 consecutive weeks, interns will get the opportunity to work on more challenging 500-point tasks for a month. Success in this phase may lead to a permanent position.

πŸ’‘ Community Discussions

GitHub Discussions is our chosen platform for building a community around our project. Here, you'll not only find vibrant conversations around the project's development but also get to observe first-hand how the project evolves and progresses.

How are Discussions different from Issues?

While Issues are meant to be more formal and are usually tied to specific tasks or problems, Discussions serve as a less structured platform for questions, ideas, and collaborative problem-solving. They offer a more communal approach to contributing to the project, allowing for brainstorming sessions, polls, Q&As, and even casual conversations around the project's domain.

The Importance of Participating in Discussions

Active participation in discussions is crucial to maintaining a clear understanding of the project's trajectory. The conversations, especially the polls, could influence major decisions regarding the project's direction. Hence, contributing to discussions is compulsory for all project members.

To recognize the importance of active discussion participation, we are planning to implement a points system for discussions. Details on the criteria and allocation will be released soon, so stay tuned!

Keeping Yourself Updated

Reviewing discussions regularly ensures you are kept abreast of the latest updates, decisions, and the overall direction of the project. It's not just about contributing to the conversations; it's about understanding the evolving context of the project.

Current Project Phase

Refactoring and adding coding style rules.

Stay Updated:

This project is in a state of active development and is constantly evolving. Rules and guidelines can change from time to time. To ensure you're always up to speed, we strongly recommend regularly reviewing the README and its change history. Checking the commit history of the README file can give you an idea of when the last changes were made. Staying updated will ensure you're always following the latest guidelines and requirements of the project. Remember, knowledge is power!