onflow / developer-grants

Grants for developers that contribute to the broader developer ecosystem
Apache License 2.0
50 stars 18 forks source link

FlowPulse: Analytics Dashboard for Exploring Activities in Flow #154

Open justmert opened 1 year ago

justmert commented 1 year ago

FlowPulse

Grant category

Developer tools / services

Description

Flow open source developer ecosystem is growing day by day. But there is currently no way to get an activity overview and easily track the development among different projects that is integrated with Flow or tools/components of Flow ecosystem on Github. Understanding the status of projects and tracking contributions made by developers can give an idea on how the Flow evolve. It is really hard to understand how the Flow ecosystem is progressing since the data is scattered all over GitHub, with contributors, commits, issues, repositories and PRs data.

The solution I present to Flow community is a platform that provides visualizations and insights for open source projects in the Flow ecosystem named FlowPulse. It offers a comprehensive view of activities of projects and insights into the ecosystem's trends. The project will allow users to gain insights into the development activity, code contributions, issue resolution, and community engagement of the Flow ecosystem through open source projects. This information will be displayed through various visualizations and charts, which will be accessible through a web-based application named FlowPulse.

Website: https://flowpulse.vercel.app Open-Source Backend: https://github.com/justmert/eco-pulse-backend Open-Source Frontend: https://github.com/justmert/eco-pulse-frontend

Problem statement

Target audience

The target audience for FlowPulse can include developers, researchers, and enthusiasts who are interested in monitoring the development and activity of open-source projects on the Flow ecosystem. The platform's analytical tools and visualizations can provide valuable insights into the performance of various projects, making it useful for those who want to gain a better understanding of the ecosystem's progress and the direction it's headed in.

By tracking the activity of commits history, and issue resolution FlowPulse can help developers identify areas where they can improve and streamline their own development processes. By offering detailed analytics, FlowPulse can become an essential tool for anyone who is interested in the development and progress of the Flow ecosystem.

Evidence for the need

Proposed solution

Impact

Improve Project Visibility: By providing detailed analytics and visualizations for Flow projects, FlowPulse can help increase the visibility of these projects, making it easier for developers and users to find and contribute to them.

Enhance Developer Productivity: With the ability to quickly access important data and metrics, developers can more easily identify areas of the project that need attention. This can lead to faster issue resolution and more efficient development cycles.

Encourage Community Engagement: By providing a centralized location for viewing project activity and contributions, FlowPulse can encourage community engagement and collaboration. Users can easily identify areas where they can contribute to the project and engage with other developers and users.

See Ecosystem Evolution: FlowPulse can help show the evolution of Flow projects over time by providing historical data and visualizations of key metrics, enabling developers to better understand the project's development trajectory and identify areas where protocol gains trends.

Stands Out: Currently, there is no project that provides a comprehensive analytics dashboard for open-source projects in the Flow ecosystem. FlowPulse fills this gap and provides value by enabling developers and stakeholders to easily gain insights into the activity and performance of Flow projects.

Project Images

flowpulse-website-images

Technical Scheme

flowpulse-scheme-svg

Milestones and funding

Milestone Deliverables Timeline Risks USD proposal
1 - Building
  • Add an MIT License to the project's backend and frontend Github repositories.
  • Set up a Firebase Firestore database.
  • Develop a Python backend to fetch data from Github Rest and GraphQL APIs.
  • Build the Dashboard, Project List and Project Detail pages with corresponding backend functions.
  • Integrate Algolia to enhance the search functionality of the platform.
  • Incorporate Typeform to allow ecosystem users to suggest new projects for FlowPulse.
  • Integrate Google Analytics to track user engagement and adapt and improve the platform accordingly.
5 weeks - 7500
2 - Deploying
  • Add initial project list of the Flow ecosystem to the Firestore database.
  • Deploy backend to Heroku.
  • Schedule the backend to update project data in Firestore on a regular basis.
  • Change domain name of FlowPulse to flowpulse.xyz.
3 weeks - 1500
3 - Expanding
  • User Profiles: Create user github integration that allow users to showcase their Github contributions and connect with other developers in the Flow ecosystem. User profiles could show users' Github statistics, such as their total commits, pull requests, and issues, as well as their recent activity based on Flow projects.
    The feature could provide a way for developers to showcase their contributions to the Flow ecosystem and build their personal brand. Users could use their profiles to connect with other developers, discover new projects to work on, and showcase their skills.

  • Leaderboards: Improve upon top contributors section to provide leaderboard system that allow users to compete with other developers in the Flow ecosystem based on Github activity. This provide an incentive for developers to contribute more to the Flow ecosystem and showcase their skills. The leaderboard system could track metrics such as the number of commits, pull requests, issues resolved, and lines of code written etc.

  • Bounty Issues: Allows developers and projects in the Flow ecosystem to offer bounties for specific Github issues. Developers could view a list of available bounty issues, which would include information on the bounty amount, the issue details, and the requirements for resolving the issue. Developers could then claim a bounty issue and work on resolving it. Once the issue has been resolved and verified by the project owner, the developer would receive the bounty amount.
    The feature could help to incentivize developers to work on high-priority issues in the Flow ecosystem and provide a way for developers to earn money for their contributions. Projects could use this feature to attract new contributors and accelerate the development of their projects. Additionally, this feature could help to connect developers with projects that align with their interests and expertise, leading to more effective collaboration and faster issue resolution.
8 weeks - 6250
4 - Maintenance As the Flow ecosystem grows and evolves, it's important to ensure that FlowPulse remains a reliable and high-quality source of Github analytics and insights. I will focus on implementing best practices for code quality, testing, and documentation, to ensure that the platform remains stable and easy to maintain over one year. This will involve regular bug fixes and updates to accommodate changes in the Github API and other external factors that may affect the functionality of FlowPulse. 1 year - 2250

Total funding proposed: $17.500

Team

Name Role Bio Contact
Mert Köklü Full-Stack Engineer Founding vice-chair of ACM Student Chapter and acted as an ambassador of many organizations including Microsoft and Certified Instructor of NVIDIA. In Web3, AAVE Turkey Community Co-Manager and The Graph Advocate. Was working with AI video pipelines at an NVIDIA distributor company in Turkey before getting involved with blockchain.

I'm AAVE and Filecoin grantee with an already accepted 3 projects. Now, I am developing open-source, user-friendly applications that add value to the ecosystem in the Flow ecosystem.
kklumert@gmail.com

Additional Information

Vercel deployed frontend (flowpulse.vercel.app) has initially 17 repositories because of the demo purposes. After milestone 2, the project will have more repositories initially curated by me (or request from the onFlow Team) and the more can be added by the community via Submit button in the app. If you have any questions or requests, please feel free to contact me. Thank you.

alxflw commented 1 year ago

Hi @justmert. Thanks for your submission. We really like your proposal and would like to move forward- pending alignment on the following:

1) Would you be open to building a crawler to automatically update / add / remove repositories? It will be critical to have a way to stay relevant as the list of repositories change over time

  1. Would you be open to adding more developer metrics specific to our network? (eg contract deployments, interactions with contracts, etc)
justmert commented 1 year ago

Hi @alxflw , glad you liked FlowPulse!

I want to develop FlowPulse as off-chain and on-chain core analytics dashboard of Flow ecosystem so I am open to any features that Flow team requests. Now, based on your requests,

  1. Initially, I considered developing a crawler for FlowPulse. However, instead of using a crawler, I created a manual insertion system to ensure that only high-quality projects were displayed on the website. I did this in case there were projects that were not meant to be listed or were of poor quality. While this seemed like a good idea at the time, I now realize that a crawler would be more sustainable for the long term. Therefore, I would like to proceed with implementing a crawler.

  2. Of course I would add. My goal is to make FlowPulse a valuable analytics tool to the Flow ecosystem. Can you provide more information on what these metrics could be? I would appreciate any detailed insights you have on this matter.


In addition to the features mentioned in the proposal, I have compiled a list of additional features that I think would be beneficial to include to the FlowPulse for further milestones.

Project Health Score: Designed to provide users with a comprehensive overview of a project's overall health by evaluating a variety of metrics. This score will help users identify projects that have potential and are worth investing time and resources into, as well as flagging projects that are struggling or have a high risk of abandonment.

Integrate Twitter Data: With Twitter data of the projects (and the Flow Twitter channel), we can gain more insights and metrics about the open source projects listed in the platform. This integration will provide users with a variety of additional metrics, such as the number of followers, number of retweets, and number of likes, thus engagement rate etc.

Categorization: This feature will allow for the categorization of projects based on various criteria within the Flow ecosystem. This feature is essential because of the vast size of the Flow ecosystem, making it difficult for users to locate projects based on their specific interests. The projects will be categorized like DeFi, DEX, and others.

We can discuss in more detail what on-chain metrics to include. Afterwards, I can adjust the milestones based on the new features. If you would like to have a more extensive discussion, then please reach me at MertK#2634 on Discord. Thank you.

alxflw commented 1 year ago

thanks @justmert - that makes sense. I think it would be great if we could include "ecosystem activity" metrics, similar to what can be found on https://www.developerreport.com.

We'd like to accept this grant proposal. I'll email you the next steps.

fotescodev commented 1 year ago

@justmert just found your project and you have no idea how helpful it is already. One ask - is there a way to include a hackathon tag for Flow Hackathon participants? That way we can shuffle through all hackathon projects and sort as needed. Usually these have a great value as sample projects.

alxflw commented 1 year ago

Flow Hackathon

FYI - the list of projects is here: https://flow-hackathon.devfolio.co/projects. Most of them have public GH repos

bluesign commented 1 year ago

For the lazy: curl -s http://tymianek.com/flow/ | grep "https://github.com" | grep href | sed "s/href=\"//" | sed "s/\".*//" | sort

justmert commented 1 year ago

Hey @fotescodev, thank you for your feedback as I am still developing the platform so some data and features are not available yet.

Also, thanks for feature request, will include it to my milestone as that will improve categorization and overall UX.

justmert commented 1 year ago

For the lazy: curl -s http://tymianek.com/flow/ | grep "https://github.com" | grep href | sed "s/href=\"//" | sed "s/\".*//" | sort

Hey @bluesign, thanks for the awesome one-liner. Could you confirm that this project list is same as resource that @alxflw provided? If not, then I need to merge two resources to collect Hackathon projects. Thank you.

bluesign commented 1 year ago

Yep it is scraped from the hackathon page after the hackathon. Should be same.

justmert commented 1 year ago

Awesome! Thank you @bluesign :)

justmert commented 10 months ago

Hi all, we have updated the project to the v2, and added so many features that we can't count. You can see it in here: https://flowana.app/flow/github

Also added hackathon projects :) @fotescodev. In projects page, you can categorize by selecting only hackathons. Also added ecosystem developer activity metrics as you have requested @alxflw, and can be seen in the developer tab.

Btw, we saw that @bluesign is the best guy in the forum thanks to our platform :)

I hope community find it usable. Just note that, we still developing the platform, so some ui bugs can happen.