‹ Reports
The Dispatch

Executive Summary

The "Project Based Learning" project, managed by the organization "practical-tutorials," is a curated repository of programming tutorials aimed at helping developers build applications from scratch. The project is highly popular, with over 172,000 stars and 22,000 forks. Despite its popularity, the project has 135 open issues, indicating active development and community engagement. The overall state of the project is stable, with a focus on expanding and updating its content.

Recent Activity

Team Members and Recent Activities

  1. Axel Baudot (axelbdt)

    • Commit: Added "Write a game boy emulator in Ocaml" (#419)
    • Date: 427 days ago
    • Collaboration: None
  2. Cheese (jiyeonseo)

    • Commit: Added a new C/C++ project (#403)
    • Date: 428 days ago
    • Collaboration: None
  3. Rory Donald (rdonald)

  4. Rivaan Ranawat (RivaanRanawat)

    • Commit: Added multiple Flutter tutorials (#364)
    • Date: 632 days ago
    • Collaboration: None
  5. Alireza Ghorbani

    • Commit: Added Realtime Chat app tutorial for Django (#371)
    • Date: 635 days ago
    • Collaboration: None
  6. savan kansagra (savankansagra)

    • Commit: Updated Java security project reference (#363)
    • Date: 635 days ago
    • Collaboration: None
  7. Alabhya Jindal (alabhyajindal)

    • Commit: Removed multiple dead links (#349)
    • Date: 769 days ago
    • Collaboration: None
  8. Armin Patel (arminpatel)

    • Commit: Updated readme.md (#351)
    • Date: 777 days ago
    • Collaboration: None
  9. Norbert Klar (enkeyz)

    • Multiple commits adding Go projects and updating README.md (#327, #325, #343)
    • Dates: 844-845 days ago
    • Collaboration: Minimal
  10. Nihal Joshi (joshinihal)

    • Commit: Refactored repository by removing unavailable tutorials (#335)
    • Date: 875 days ago
    • Collaboration: None
  11. Saheel Ahmed (saheelahmed2)

    • Commit: Added fake news detector tutorial using Python & ML (#336)
    • Date: 875 days ago
    • Collaboration: None
  12. Utpal Prajapati (Utpal29)

    • Commit: Added JavaScript project (#337)
    • Date: 875 days ago
    • Collaboration: None

Patterns and Conclusions

  1. Emphasis on adding new tutorials across various languages and technologies.
  2. Active maintenance through updates to existing resources.
  3. Minimal collaboration among contributors.
  4. Significant decrease in commit frequency over time.

Risks

  1. Decreased Activity:

    • The most recent commit was over a year ago, indicating a potential slowdown in contributions or reduced project activity.
  2. Outdated Resources:

    • Several issues highlight outdated resources, such as #561 regarding deprecated Java materials.
  3. Broken Links:

    • Issues like #538 and #462 indicate broken links in the repository, negatively impacting user experience.
  4. Lack of Detailed Issues:

    • Several issues lack detailed descriptions or context, making them difficult to address effectively (e.g., #569 and #564).

Of Note

  1. PR #566 adds valuable resources but includes non-descriptive commit messages like "asdasdasd," which need cleanup.
  2. Duplicate PRs for AWS resources (#560 and #559) should be resolved to avoid redundancy.
  3. Recently closed PR #529 added valuable content but was not merged without clear reasons.

Conclusion

The "Project Based Learning" repository remains a valuable resource for developers but faces challenges such as decreased activity, outdated resources, and broken links. Addressing these issues will be crucial for maintaining its relevance and usefulness.

Evidence:

Quantified Commit Activity Over 14 Days

Developer Avatar Branches PRs Commits Files Changes
Ruja Awal (awalrujaa) 0 1/0/0 0 0 0
Nguyễn Nguyên Giáp (megait004) 0 1/0/0 0 0 0
Microondas (microwavedd) 0 1/0/0 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch commits



Project Overview

The project "Project Based Learning" is a curated list of programming tutorials designed to help aspiring software developers learn how to build applications from scratch. These tutorials are categorized by primary programming languages and may involve multiple technologies and languages. The repository is managed by the organization "practical-tutorials" and is licensed under the MIT License. The project has been active since April 2017 and has garnered significant attention with over 172,000 stars and more than 22,000 forks. Despite its popularity, the project has 135 open issues, indicating ongoing development and community engagement. The overall state of the project appears stable, with a focus on expanding and updating its content.

Team Members and Recent Activities

Axel Baudot (axelbdt)

  • Commit: Add "Write a game boy emulator in Ocaml" (#419)
  • Date: 427 days ago
  • Details: Added a new tutorial for writing a Game Boy emulator in OCaml.
  • Collaboration: No co-authors listed.

Cheese (jiyeonseo)

  • Commit: Add a new c/c++ project (#403)
  • Date: 428 days ago
  • Details: Contributed a new C/C++ project to the repository.
  • Collaboration: No co-authors listed.

Rory Donald (rdonald)

Rivaan Ranawat (RivaanRanawat)

  • Commit: Adding Flutter Tutorials (#364)
    • Sub-commit: adding flutter tutorials
    • Sub-commit: removing ui tutorials, adding new project tutorials
  • Date: 632 days ago
  • Details: Added multiple Flutter tutorials and removed outdated UI tutorials.
  • Collaboration: No co-authors listed.

Alireza Ghorbani

  • Commit: Added Realtime Chat app tutorial for django (#371)
  • Date: 635 days ago
  • Details: Contributed a tutorial for building a real-time chat application using Vue, Django-notifs, RabbitMQ, and uWSGI.
  • Collaboration: No co-authors listed.

savan kansagra (savankansagra)

  • Commit: Updated Java security project reference. (#363)
  • Date: 635 days ago
  • Details: Updated the URL for a Java security project reference to ensure it points to a working resource.
  • Collaboration: No co-authors listed.

Alabhya Jindal (alabhyajindal)

  • Commit: Removed multiple dead links (#349)
    • Sub-commit: removed dead links under web app -> react
    • Sub-commit: removed dead links under web app -> others
    • Sub-commit: removed dead link under python -> web app
    • Sub-commit: removed dead link under openCV
    • Sub-commit: removed two dead links and an incomplete tutorial link under desktop applications
    • Sub-commit: added tutorial under openCV, mistakenly removed earlier
  • Date: 769 days ago
  • Details: Cleaned up multiple dead links across various sections of the repository.
  • Collaboration: No co-authors listed.

Armin Patel (arminpatel)

  • Commit: Update readme.md (#351)
  • Date: 777 days ago
  • Details: Removed a dead link from the additional resources section in the README file.
  • Collaboration: No co-authors listed.

Norbert Klar (enkeyz)

Multiple commits: 1. - Commit: added new Go project (#327) - Date: 844 days ago - Details: Added a new Go project to the repository. - Collaboration: No co-authors listed. 2. - Commit: added new Go project (#325) - Date: 844 days ago - Details: Another Go project addition. - Collaboration: No co-authors listed. 3. - Commit: Update README.md (#343) - Date: 845 days ago - Details: General update to the README file. - Collaboration: Thanks! by Krish Bhardwaj (Krish-bhardwaj).

Nihal Joshi (joshinihal)

    • Commit: refactor: remove tutorials which shut down (#335)
    • Date: 875 days ago
    • Details: Refactored the repository by removing tutorials that were no longer available.
    • Collaboration: No co-authors listed.

Saheel Ahmed (saheelahmed2)

    • Commit: Added tutorial for fake news detector using python & ml (#336)
    • Date: 875 days ago
    • Details: Contributed a tutorial for detecting fake news using Python and machine learning.
    • Collaboration: No co-authors listed.

Utpal Prajapati (Utpal29)

    • Commit: added JavaScript project (#337)
    • Date: 875 days ago
    • Details: Added a new JavaScript project to the repository.
    • Collaboration: No co-authors listed.

Patterns and Conclusions

From the recent commit history, several patterns emerge:

  1. There is an emphasis on adding new tutorials across various programming languages and technologies, indicating an ongoing effort to expand the repository's content.
  2. Several contributors have focused on updating existing resources, such as fixing broken links or updating outdated references, which suggests active maintenance of the repository to ensure its relevance and usefulness.
  3. Collaboration among contributors is minimal based on commit history, with most commits authored individually without co-authors. However, there are instances of collaboration as seen in Rory Donald's commit which was co-authored.
  4. The frequency of commits has decreased significantly over time, with the most recent commit being over a year old. This could indicate either a slowdown in contributions or that the repository has reached a level of maturity where fewer updates are necessary.

Overall, the "Project Based Learning" repository remains an active and valuable resource for developers looking to learn through hands-on projects, supported by continuous contributions from various developers over time.

Report On: Fetch issues



Recent Activity Analysis

Recent GitHub issue activity for the practical-tutorials/project-based-learning repository has been steady, with a mix of new issues being created and older issues being updated or closed.

Notable Anomalies and Themes

  1. Lack of Detail in Issues: Several issues lack detailed descriptions or context, making it difficult to understand the exact problem or suggestion. For example, #569 ("Projects") and #564 ("Learning repositry") have no descriptions at all.

  2. Outdated Resources: There are multiple issues related to outdated resources, such as #561, which mentions that some Java section materials are deprecated. This indicates a recurring theme where contributors are concerned about the relevance and currency of the resources.

  3. Broken Links: Issues like #538 and #462 highlight broken links in the repository, which can significantly hinder user experience.

  4. New Language and Resource Additions: There are several issues proposing the addition of new languages and resources, such as #566 (Julia programming language) and #563 (Programiz PRO). This suggests an ongoing effort to expand the repository's scope.

  5. General Requests for Learning Material: Many issues are general requests for learning materials or tutorials, such as #567 ("Python learning") and #562 ("Project based learning").

  6. Unclear or Vague Issues: Some issues are vague or unclear, such as #556 ("Whole things") and #552 ("Learing question"), which do not provide enough context to be actionable.

Issue Details

Most Recently Created Issues

  1. #570: Create c++

    • Priority: Not specified
    • Status: Open
    • Created: 0 days ago
    • Updated: N/A
  2. #569: Projects

    • Priority: Not specified
    • Status: Open
    • Created: 1 day ago
    • Updated: N/A
  3. #568: Revise an explanation

    • Priority: Not specified
    • Status: Open
    • Created: 5 days ago
    • Updated: N/A
  4. #567: Python learning

    • Priority: Not specified
    • Status: Open
    • Created: 6 days ago
    • Updated: N/A
  5. #566: Added Julia programming language, added Python screensaver and Full Stack Open as resource

    • Priority: Not specified
    • Status: Open
    • Created: 7 days ago
    • Updated: N/A

Most Recently Updated Issues

  1. #559: AWS resources

    • Priority: Not specified
    • Status: Open
    • Created: 22 days ago
    • Updated: 21 days ago
  2. #558: added "Using C to Simulate LC2K"

    • Priority: Not specified
    • Status: Open
    • Created: 25 days ago
    • Updated: 22 days ago
  3. #556: Whole things

    • Priority: Not specified
    • Status: Open
    • Created: 27 days ago
    • Updated: 22 days ago
  4. #544 [ADD] Adding a DevOps section which is so essential

    • Priority: Not specified
    • Status: Open
    • Created: 37 days ago
    • Updated: 25 days ago
  5. #545 Ocaml project "Implement a Language with LLVM in OCaml" is archived

    • Priority:** Not specified
    • Status:** Open
    • Created:** 36 days ago
    • Updated:** N/A

Report On: Fetch pull requests



Analysis of Pull Requests

Open Pull Requests

PR #570: Create c++

  • State: Open
  • Created: 0 days ago
  • Description: Adds a new file named "c++" with a single line.
  • Notable Issues: The PR lacks a detailed description and does not follow the contribution guidelines. The content of the file is also empty, which does not add value to the project.

PR #566: Added Julia programming language, added Python screensaver and Full Stack Open as resource.

  • State: Open
  • Created: 7 days ago
  • Description: Adds resources for Julia programming language, a Python screensaver tutorial, and Full Stack Open.
  • Notable Issues: This PR is well-documented and adds valuable resources. However, it includes multiple commits with non-descriptive messages like "asdasdasd," which should be cleaned up.

PR #563: Added Programiz PRO that offers curated learning paths for beginners

  • State: Open
  • Created: 8 days ago
  • Description: Introduces Programiz PRO in Additional Resources.
  • Notable Issues: This PR is well-documented and adds valuable resources. No significant issues noted.

PR #560: added aws resources

  • State: Open
  • Created: 22 days ago
  • Description: Adds a YouTube playlist link for AWS resources.
  • Notable Issues: The description is brief but sufficient. The PR seems to be straightforward and adds value.

PR #559: AWS resources

  • State: Open
  • Created: 22 days ago, edited 21 days ago
  • Description: Adds a resource link for AWS.
  • Notable Issues: Duplicate of PR #560. Should be merged or closed to avoid redundancy.

PR #558: added "Using C to Simulate LC2K"

  • State: Open
  • Created: 25 days ago, edited 22 days ago
  • Description: Adds a tutorial for creating an LC2K learning tool using C.
  • Notable Issues: Well-documented and adds value. No significant issues noted.

PR #538: Fix broken link in README.md for "Build an App in Pure JS" tutorial

  • State: Open
  • Created: 58 days ago
  • Description: Fixes a broken link in the JavaScript section.
  • Notable Issues: Simple fix that improves user experience. No significant issues noted.

PR #537: updating contributing.md

  • State: Open
  • Created: 59 days ago
  • Description: Updates the email address in CONTRIBUTING.md.
  • Notable Issues: Minor change but necessary for accurate contact information. No significant issues noted.

PR #535: Update README.md

  • State: Open
  • Created: 61 days ago, edited 50 days ago
  • Description: General updates to README.md.
  • Notable Issues: Lacks detailed description of changes. Needs more context to understand the purpose of the updates.

PR #533: Added Full stack tutorials

  • State: Open
  • Created: 63 days ago
  • Description: Adds full-stack tutorials.
  • Notable Issues: Well-documented and adds value. No significant issues noted.

Recently Closed Pull Requests

PR #529: Update README.md - Add: Building the Flappy Bird A.I. without LIBRARIES

  • State: Closed (Not merged)
  • Created/Closed Dates: Created 78 days ago, closed 78 days ago
  • Description: Added a tutorial for building Flappy Bird AI without libraries.
  • Notable Issues: The content was valuable but was not merged. Reason for closure not provided; could be reconsidered if issues are addressed.

PR #527: README.md from cloned project committed!

PR #526: Newbranch

  • Both were closed without being merged on the same day they were created (86 days ago).
  • These appeared to be test or erroneous commits with no substantial content.

Summary

  1. Several open pull requests add valuable resources and fix issues (#566, #563, #558).
  2. Some open pull requests need better documentation or cleanup (#570, #535).
  3. There are duplicate pull requests that should be resolved (#560 and #559).
  4. Recently closed pull requests include some test commits and one potentially valuable addition that was not merged (#529).

Recommendations

  1. Merge valuable contributions after minor cleanups (e.g., commit message cleanup in #566).
  2. Close duplicate pull requests (#559).
  3. Provide feedback on why valuable contributions were not merged (#529) to encourage resubmission with necessary changes.
  4. Ensure all contributors follow contribution guidelines to maintain quality and consistency across the project.

Report On: Fetch PR 570 For Assessment



PR #570: Create c++

Summary

This pull request (PR) introduces a new file named c++ to the repository practical-tutorials/project-based-learning. The file contains a single line with no content.

Detailed Analysis

Changes Made

  • File Added: c++
    • Content: The file contains only one line, which is empty.

Code Quality Assessment

  1. Content:

    • The file c++ is created but does not contain any meaningful content. It only has a single blank line.
  2. Purpose and Context:

    • The PR lacks a detailed description of the purpose and context of the changes. There is no information provided on why this file is necessary or what it aims to achieve.
  3. Testing:

    • There is no information on how this change has been tested. Given that the file is empty, there are no functional aspects to test.
  4. Checklist Compliance:

    • The checklist in the PR template is not filled out, indicating that the submitter has not confirmed adherence to project guidelines or validated URLs and resources.

Recommendations

  1. Add Meaningful Content:

    • If the intention is to add a tutorial or resource related to C++, the file should contain relevant and meaningful content. For example, it could include links to C++ tutorials, project ideas, or code examples.
  2. Provide Detailed Description:

    • Update the PR description to clearly explain why this file is being added and what it aims to achieve. This helps reviewers understand the context and purpose of the changes.
  3. Complete Checklist:

    • Ensure that all items in the checklist are reviewed and checked off if they are applicable. This includes confirming that the code follows the project's style guidelines and that any URLs or resources included are valid.
  4. Testing Information:

    • Include details on how the changes have been tested, even if it’s just confirming that the file was added correctly without breaking anything else in the repository.

Conclusion

This PR currently does not add any value as it stands because it introduces an empty file without any context or explanation. To improve this PR, meaningful content should be added, a detailed description should be provided, and the checklist should be completed to ensure compliance with project guidelines.

Report On: Fetch Files For Assessment



Source Code Assessment

1. .github/ISSUE_TEMPLATE/Bug_report.md

  • Purpose: This template is used for reporting bugs.
  • Structure:
    • Clearly defined sections for expected behavior, current behavior, possible solutions, steps to reproduce, and optional context.
    • Use of HTML comments to guide users on what information to provide.
  • Quality:
    • Well-structured and easy to follow.
    • Encourages detailed and useful bug reports.
  • Suggestions: None. The template is concise and covers all necessary aspects.

2. .github/ISSUE_TEMPLATE/Feature_request.md

  • Purpose: This template is for requesting new features or enhancements.
  • Structure:
    • Sections for description, importance, benefits, possible implementation, open questions, and interest in working on the feature.
    • Use of HTML comments to guide users on what information to provide.
  • Quality:
    • Well-organized and prompts comprehensive feature requests.
    • Encourages contributors to think about implementation and their involvement.
  • Suggestions: None. The template is well-designed.

3. .github/PULL_REQUEST_TEMPLATE.md

  • Purpose: This template is for submitting pull requests.
  • Structure:
    • Sections for description, motivation and context, testing details, types of changes, and a checklist.
    • Use of HTML comments to guide users on what information to provide.
  • Quality:
    • Comprehensive and ensures that contributors provide all necessary information.
    • The checklist helps maintain code quality and adherence to guidelines.
  • Suggestions: None. The template is thorough and effective.

4. .github/stale.yml

  • Purpose: Configuration for marking stale issues and pull requests.
  • Structure:
    • Defines inactivity periods before marking issues as stale and closing them.
    • Specifies labels exempt from being marked as stale.
    • Customizable comments for marking and closing stale issues.
  • Quality:
    • Clear configuration that helps maintain project hygiene by closing inactive issues/PRs.
  • Suggestions: None. The configuration is clear and functional.

5. .travis.yml

  • Purpose: Travis CI configuration file for continuous integration setup.
  • Structure:
    • Specifies Ruby as the language and version (2.4.1).
    • Installs awesome_bot gem before running the script to check links in README.md.
  • Quality:
    • Simple but effective CI setup for checking link validity in the README file.
  • Suggestions: Consider expanding CI checks to include other aspects like linting or tests if applicable.

6. CONTRIBUTING.md

  • Purpose: Guidelines for contributing to the project.
  • Structure:
    • Lists prerequisites for making a pull request (e.g., tutorial uniqueness, correct placement).
    • Provides format examples for adding tutorials and multi-part series.
    • Includes general guidelines like writing good commit messages and removing trailing whitespaces.
  • Quality:
    • Detailed and clear instructions that help maintain consistency in contributions.
  • Suggestions: None. The guidelines are comprehensive and well-written.

7. LICENSE.md

  • Purpose: License information for legal use and distribution of the project.
  • Structure:
    • Standard MIT License text granting permission with conditions on usage, modification, distribution, etc.
  • Quality:
    • Standard legal document providing clear terms of use.
  • Suggestions: None. The license is appropriate and complete.

Overall, the repository's templates and configuration files are well-organized, comprehensive, and facilitate smooth project management and contribution processes. The only minor suggestion is to consider expanding CI checks in the .travis.yml file if additional testing or linting would be beneficial for the project's maintenance.