Skip to content

Add monthly featured developer showcase#124

Closed
Aashish-Jha-11 wants to merge 19 commits into
john-bampton:mainfrom
Aashish-Jha-11:feature/monthly-featured-developer
Closed

Add monthly featured developer showcase#124
Aashish-Jha-11 wants to merge 19 commits into
john-bampton:mainfrom
Aashish-Jha-11:feature/monthly-featured-developer

Conversation

@Aashish-Jha-11

Copy link
Copy Markdown
Contributor

Highlights top GitHub developer each month based on engagement (followers, stars, repos, sponsors, activity). Features beautiful gradient banner with user stats and top languages. Auto-updates when running fetch.py.

Current featured: Linus Torvalds (engagement score: 74.97)

What's included:

  • 🎯 Smart engagement scoring algorithm (40% followers, 30% stars, 15% repos, 10% sponsors, 5% recent activity)
  • 🎨 Beautiful gradient banner with glassmorphism effects
  • 📱 Fully responsive design (mobile, tablet, desktop)
  • 🔄 Automatically updates when running fetch.py
  • ⚡ Quick manual generation via generate_featured.py

Resolves #122

Highlights top GitHub developer each month based on engagement (followers, stars, repos, sponsors, activity). Features beautiful gradient banner with user stats and top languages. Auto-updates when running fetch.py.

Current featured: Linus Torvalds (engagement score: 74.97)

Resolves john-bampton#122
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @Aashish-Jha-11, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a significant new feature to showcase a 'Featured Developer of the Month' on the platform. It encompasses both backend logic for selecting the developer based on a comprehensive engagement score and frontend UI/UX development to present this information attractively and responsively. The goal is to celebrate highly engaged community members and provide an engaging visual element to the site.

Highlights

  • Monthly Featured Developer: Introduces a new 'Featured Developer of the Month' section to highlight top GitHub developers based on engagement.
  • Engagement Scoring Algorithm: Implemented a smart algorithm in Python to calculate a developer's engagement score, considering followers, stars, repositories, sponsors, and recent activity.
  • Dynamic UI Integration: The frontend now dynamically loads and displays the featured developer's information, including avatar, name, login, location, key stats, and top languages, with a visually appealing gradient banner and glassmorphism effects.
  • Automated & Manual Generation: The featured developer data automatically updates when fetch.py is run, and a new utility script generate_featured.py allows for quick manual generation.
  • Responsive Design: The new featured developer section is fully responsive, ensuring optimal display across mobile, tablet, and desktop devices.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a great new feature: a monthly featured developer showcase. The implementation spans the frontend and backend, with new UI components, styling, and Python scripts for data processing. My review identifies a critical bug in fetch.py due to a duplicated function, which needs immediate attention. I've also pointed out a high-priority maintainability issue concerning duplicated logic between two Python scripts. Other comments focus on improving code quality and maintainability through better error handling, code structure, and adherence to standard coding practices. The frontend work is generally solid, with good considerations for performance and security.

Comment thread fetch.py Outdated
Comment thread generate_featured.py
Comment thread docs/script.js Outdated
Comment thread docs/script.js Outdated
Comment thread fetch.py Outdated
Comment thread fetch.py
Comment thread generate_featured.py
@jbampton jbampton self-assigned this Dec 17, 2025
@jbampton jbampton added enhancement New feature or request help wanted Extra attention is needed hacktoberfest labels Dec 17, 2025
@jbampton jbampton added this to Turbo Dec 17, 2025
@jbampton jbampton moved this to In Progress in Turbo Dec 17, 2025
@jbampton jbampton added this to the December 2025 milestone Dec 17, 2025
@BaseMax

BaseMax commented Dec 17, 2025

Copy link
Copy Markdown
Member

@Aashish-Jha-11 shows me a screenshot once everything is ready.

@Aashish-Jha-11

Copy link
Copy Markdown
Contributor Author

@BaseMax
Screenshot 2025-12-17 at 8 58 06 PM

@BaseMax

BaseMax commented Dec 17, 2025

Copy link
Copy Markdown
Member

Descriptions are not readable well:
image

@BaseMax

BaseMax commented Dec 17, 2025

Copy link
Copy Markdown
Member

‎docs/featured.json‎ should be without ident, so ident=0.

And I think we need to merge both json into one as in this case we will have some delay to load this big featured developer section and will make scroll changes for end-user.

- Increased stat label font size and contrast for better readability
- Removed indentation from featured.json (compact format)
- Updated both fetch.py and generate_featured.py
@BaseMax

BaseMax commented Dec 17, 2025

Copy link
Copy Markdown
Member

And I think we need to merge both json into one as in this case we will have some delay to load this big featured developer section and will make scroll changes for end-user.

Let me know your feedback about this.

@Aashish-Jha-11

Copy link
Copy Markdown
Contributor Author

@BaseMax Sir! I think Keeping JSONs separate is better:

Both load in parallel Promise.all & featured.json
No scroll jumping - featured section loads immediately
Better cache management - can update featured monthly without invalidating main cache

@BaseMax

BaseMax commented Dec 17, 2025

Copy link
Copy Markdown
Member

Better cache management - can update featured monthly without invalidating main cache

Did you handled it in manifest.json or service-worker.js file?

@Aashish-Jha-11

Aashish-Jha-11 commented Dec 17, 2025

Copy link
Copy Markdown
Contributor Author

@BaseMax Not explicitly - I meant browser-level caching. Separate files = independent cache entries. When featured.jsonupdates monthly, browsers can keep cached users.json (saves 640KB re-download).

Should we add explicit cache handling in service-worker.js? We could set different cache durations (1 month for featured.json vs longer for users.json).

@BaseMax

BaseMax commented Dec 17, 2025

Copy link
Copy Markdown
Member

Should we add explicit cache handling in service-worker.js? We could set different cache durations (1 month for featured.json vs longer for users.json).

Yes.

@BaseMax

BaseMax commented Dec 17, 2025

Copy link
Copy Markdown
Member

1 months is too mcuh, lets set 1 week for featured, and 1 day for users.json.

- featured.json: 1 week cache
- users.json: 1 day cache
- Adds timestamp tracking for cache validation
@BaseMax

BaseMax commented Dec 21, 2025

Copy link
Copy Markdown
Member

"Due to the large number of changes in this pull request, only one file is being shown at a time." something is wrong in this PR.

@BaseMax

BaseMax commented Dec 21, 2025

Copy link
Copy Markdown
Member

This PR is open for a while, please finalize and do the task sooner so we can merge and have it up/ready.

Thanks, and Happy Yalda Night.

@Aashish-Jha-11

Copy link
Copy Markdown
Contributor Author

Hi @BaseMax Sir, thanks for the patience. The large diff is from prettier formatting bootstrap vendor files and users.json data file.

Current blockers:
Super-linter still failing - could you share which specific linter errors are blocking?
New merge conflicts appeared with main branch

I can resolve both quickly once I know the specific linter issues. The core feature code (~300 lines) is complete and tested.

Happy Yalda Night! 🎉

@jbampton

Copy link
Copy Markdown
Member

This branch has conflicts that must be resolved

1 similar comment
@BaseMax

BaseMax commented Dec 25, 2025

Copy link
Copy Markdown
Member

This branch has conflicts that must be resolved

@BaseMax

BaseMax commented Dec 25, 2025

Copy link
Copy Markdown
Member

We need to close and merge it faster. @Aashish-Jha-11 please do action.

@Aashish-Jha-11

Copy link
Copy Markdown
Contributor Author

Hi @BaseMax, understood - I'll act immediately Please tell me your opinion then only i would be able to proceed please.
Quick context: The PR was working at stage 1, but super-linter failures forced formatting changes that ballooned the diff (bootstrap vendor files, etc.).

Two options to close this fast:

Revert to working stage 1 (before lint changes) - this auto-fixes conflicts and gives clean feature-only code
Fix current conflicts and deal with large diff from formatters
Which approach do you prefer? I can execute either within hours.

@BaseMax

BaseMax commented Dec 25, 2025

Copy link
Copy Markdown
Member

Please make sure you pull from latest version of main and fix all conflicts. Complete your PR, I want to merge and develop it more.

Best

@BaseMax

BaseMax commented Dec 25, 2025

Copy link
Copy Markdown
Member

Which approach do you prefer?

I already updated pre-commit on the main branch, and it will run linters, etc so don't change formats of code at all. pre-commit will take care of it for now.

@deepsource-io

deepsource-io Bot commented Dec 25, 2025

Copy link
Copy Markdown
Contributor

Here's the code health analysis summary for commits c5b753d..5a5343f. View details on DeepSource ↗.

Analysis Summary

AnalyzerStatusSummaryLink
DeepSource Secrets LogoSecrets✅ SuccessView Check ↗
DeepSource Python LogoPython❌ Failure
❗ 13 occurences introduced
🎯 2 occurences resolved
View Check ↗
DeepSource JavaScript LogoJavaScript❌ Failure
❗ 787 occurences introduced
🎯 824 occurences resolved
View Check ↗

💡 If you’re a repository administrator, you can configure the quality gates from the settings.

@BaseMax

BaseMax commented Dec 25, 2025

Copy link
Copy Markdown
Member

This branch has conflicts that must be resolved

@Aashish-Jha-11

Copy link
Copy Markdown
Contributor Author

Hi @BaseMax,

Resolved merge conflicts and fixed all critical issues in our feature code. Latest commit: 4e08e3b

Fixed:
✅ Python: All logging f-strings converted to parameter substitution, jinja2 autoescape enabled
✅ JavaScript: Strict equality (=== instead of ==) in our feature code

Still failing (DeepSource):
The remaining issues are in Bootstrap vendor files (jquery.min.js, bootstrap.js, popper.min.js) that were reformatted by prettier:

JS-0125 (Undeclared variables) - jQuery/Bootstrap patterns
JS-0128 (Unused variables) - Vendor code
JS-0103 (IIFE wrapping) - jQuery patterns
Others - All in vendor libraries
Our feature code (script.js, service-worker.js, fetch.py, render.py) is clean and follows best practices.

Options:

Exclude vendor files from DeepSource analysis
Revert vendor file formatting (keep them minified)
Merge as-is since issues are in external dependencies
Ready for your decision.

@BaseMax

BaseMax commented Dec 25, 2025

Copy link
Copy Markdown
Member

docs/bootstrap/css/bootstrap-grid.css‎

all bootstrap assets files should be minify.

@BaseMax

BaseMax commented Dec 25, 2025

Copy link
Copy Markdown
Member

If we have both .min.css and nonmin.css so please remove nonmin and just keep using .min.css or .min.js.

@BaseMax

BaseMax commented Dec 25, 2025

Copy link
Copy Markdown
Member

you should keep ‎docs/featured.json‎ file minified.

@BaseMax

BaseMax commented Dec 25, 2025

Copy link
Copy Markdown
Member

you should keep docs/manifest.json‎ file minified. or maybe this comes from pre-commit or something?

@BaseMax

BaseMax commented Dec 25, 2025

Copy link
Copy Markdown
Member

I will not merge it, you damaged to my recent updates such as docs/service-worker.js‎, keep my version which is better.

@BaseMax

BaseMax commented Dec 25, 2025

Copy link
Copy Markdown
Member

You removed some code from html which are good to keep.

image

such as

                <option value="followers-growth-desc">
                  Trending (Followers ↑)
                </option>
                <option value="followers-growth-asc">
                  Trending (Followers ↓)
                </option>

and

            <button class="btn-apply" onclick="exportFilteredJSON()">
              Export JSON
            </button>
            <button class="btn-apply" onclick="exportFilteredCSV()">
              Export CSV
            </button>

@BaseMax

BaseMax commented Dec 25, 2025

Copy link
Copy Markdown
Member

You have removed most codes in fetch.py and render.py such as:

image

Next:

variable name should be log, not logger. you changed my code again too:
image

You removed other codes:
image

@BaseMax

BaseMax commented Dec 25, 2025

Copy link
Copy Markdown
Member

If it's hard for you to check/fix conflicts with pay attention to details. i suggest you to close this pr and open a new one and just copy paste your important/new changes

@BaseMax

BaseMax commented Dec 25, 2025

Copy link
Copy Markdown
Member

I have removed nonmin css and js bootstrap files in main branch.

@Aashish-Jha-11

Copy link
Copy Markdown
Contributor Author

Closing this PR due to merge conflict damage. Replaced with clean implementation in #187

@github-project-automation github-project-automation Bot moved this from In Progress to Done in Turbo Dec 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

3 participants