-
Notifications
You must be signed in to change notification settings - Fork 26
[RFC]: build a developer dashboard for tracking repository build status #67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Thanks for your proposal, @naveen1m. The proposal clearly shows that you spent a decent amount of time researching the project and are learning relevant technologies. Discussing some technical challenges such as implementing features like infinite scrolling or sorting is good. I also like some of the feature suggestions such as Alert and Notifications for build failures, as they are highly relevant. For some of the proposed technologies such as Given the scope of the project, it may be useful to indicate priorities for the features and discuss the potential challenges or risks and how they would be addressed. P.S. There is already an existing (currently private) Fastify backend, and access to it would be provided should this project be selected for GSoC. |
@naveen1m Thanks for sharing a draft of your proposal. A few comments:
|
@Planeshifter Thanks for your suggestion! We can use
|
@kgryte thanks for review! To address above mentioned issue I think the the possible soultion could be :
|
@kgryte @Planeshifter Thanks for your comment! I finally submitted my proposal with suggested changes. |
Full name
Naveen Kumar
University status
Yes
University name
Siksha O Anusandhan
University program
Bachelor of Technology in Computer Science and Information Technology
Expected graduation
2025
Short biography
I am a third-year B.Tech. Undergraduate at Siksha O Anusandhan, Bhubaneswar, pursuing Computer Science and Information Technology as my major. I also have a certificate in the Applied Machine Learning program from my college.
I have a strong passion for web application development, and thus I have been actively involved in such projects for the past two years. I have a good command of JS and web development, particularly in the MERN stack. I have participated in a symposium organized at my college, where I submitted a research-based project called Predicting Hospital Acquired Infection (HAI). For this, my paper was in the top 20. Further, I was among the 106 students selected from all over India for contributing to C4GT, an open source program. I developed the npm package in JS, utilizing the Bhasini API for this project. I completed the project within the given timeline. I have also done freelance work on Upwork, where I built an Android mobile application named YourRadio, a social media platform for my client using React Native and Node.js.
My interest in computer science, particularly web development, took root during my intermediate days in school. Since then, I have been working hard to grow this interest into a full-fledged experience. I see this opportunity as a stepping stone in my professional growth.
Timezone
Asia/Kolkata UTC +0530
Contact details
email: [email protected] , GitHub: https://github.com/naveen1m , Gitter: @naveen1m:gitter.im
Platform
Mac
Editor
VSCode. This is simple and lightweight, supports almost all programming languages. It has also numerous extension which
enhance its functionality even further.
Programming experience
I have more than two years of experience in programming. My first project was Image-to-Ascii-Art in Java, and after this I have built many projects in the field of web development. Projects include frontend using HTML, CSS, and JS, as well as backend using Node.js, Express, and MongoDB, and a few are full-stack; some of them are blog app, which are deployed as well; mern-auth; and one mobile app, yourradio, using React Native. I also have a few projects where I have written code for reactjs and API code in FastAPI to connect ML models; these are HAI, where I also developed ML models to predict HAI, and Namami-gange-guide.
During the C4GT open-source programme, I created a npm package in JS, utilizing the Bhashini API, and wrote documents in JSDoc for this.
JavaScript experience
I have been working on JavaScript since 1st year of college. I learnt it from youtube and built some fundamental projects and intermediate level projects on it. view all vanilla-js projects here, It includes digital-clock, calculator, food-app(using api) and more.
I love this language because I can use it in frontend and backend on the web as well as in mobile app development. It has also many libraries and large community
My most favorite features includes:
My Least favorite features includes:
Node.js experience
I learnt node js before React js and used it with library
Express js
. Most of the time I usedmongodb
as a database, but recently I usedpostgreSQL
as a database using PG library to develop dashboard-demo. I have written server code for a blog app, Mern-auth and for my freelance project YourRadio.C/Fortran experience
I read C programming during my 6th semester. Thereafter I solved a few dsa problems on it. This course of basic algorithm implementation strengthened my core concepts in C.
Interest in stdlib
Stdlib is a project which is pushing the boundaries of what JavaScript can do and above that it is a community driven initiative. Who won’t be excited to be a part of such projects? Moreover, It's not just about writing code, it's about innovation, it's about finding creative solutions to real world problems. This is exactly what drives me.
The opportunity to work under Athen Reigns also fills me with excitement. The way Athen Reigns has taken stdlib from a personal project to a position where it has over
2000 functionalities
in less than a decade inspires and motivates me. It will be an honor to contribute to this project under him.Also I have been looking for an Open source organization whose requirements align with my skill and interest, thanks to GSOC my search came to an end here.
Version control
Yes
Contributions to stdlib
refactor: update /blas/ext/base/dapx/l to follow current project conventions #1954 [ merged ]
refactor: @stdlib/blas/ext/base/ssorthp to follow current project conventions #1770 [ open ]
I updated 50 files to match the current project conventions, and its under review now. I will start working on it after submission deadline and will solve more such issues.
Goals
Project goals:
Develop a Node.js backend to query a PostgreSQL database, and construct a frontend interface using React.js along with other technologies, incorporating the following features:
Features:
Proposed Features:
Technology Stack
Frontend
Backend
Testing
Implementation Details
Workflow
See database schema, designed to understand the provided schema and write a query on it.
UI/UX design
Note: The design prototypes shared here will not be the final design for the end product. Elements will be added, and the design will be modified based on the mentor’s suggestions. as per the suggestions of the mentor. Under his guidance, the UI will be finalized during the first week.
Figma design
screenshots, I learned it that's why it took me some time to upload the design.Index page
This is the first page that users will see upon visiting the stdlib-developer-dashboard domain. The page contains an infinite scrolling table containing information about various repositories managed by the stdlib organization.
dashboard-page
dashboard-page on x-y scroll
This is the analytics page, to analyze the build status, downloads, PR merged over a period of time.

analytics-page
analytic-page bottom view
Features Implementaion
1. Displaying data on dashboard
Data on the dashboard will be displayed first according to the build status allowing maintainers and developers to identify which repositories need support and which one have the latest build.
Users will be able to view updates of build artifacts in a single page through infinite scrolling, sorting and searching.
Steps involved in displaying the dashboard:
Since stdlib has more than 4k repositories, fetching all of them at once from the backend would not be ideal. Therefore, to display such a large number of rows, cursor-based infinite scrolling will be utilized which will only fetch data that needs to be displayed on the screen at that time.
I have designed a data schema to visualize the database and to utilize it while writing PostgreSQL queries.
Sample code
I have read, understand and will follow stdlib style-guides during code writing.
Step1: retrieving data from database
I will utilize the PG library with Node.js to fetch limited data at a time.
Step2: Sending retrieved data to frontend
Response skelton
Step3: fetching data from the Backend and displaying it on the Frontend
React.js and library react-virtualized will be utilized for this. Axios will be used for http requests.
fetching data using axios
displaying rows using react-virtualized grid
main function
2. Sorting
We can apply sorting in ascending or descending orders for all columns. postgreSQL query will be used for this.
3. Searching
For the v1 of the dashboard, we can apply search only in name, tags, and build_status fields. We can extend it later using PostgreSQL indexing.
Why this project?
This project is being developed for the stdlib developers to see the build status for all repositories at once. The skills required for this project aligns with my skills and passion, therefore I am very much excited to be a part of the team and contribute to its development.I have always wanted to contribute to open source projects and since this is a project which will benefit the entire JavaScript community, my motivation level has increased. This project has already taught me postgresql and how to use it with node js in less than a week. I am still learning more advanced concepts of postgresql to optimize my solution. JavaScript has extensive usage in web applications, server-side environments, and beyond. Yet, it has historically lacked a robust standard library for data science comparable to Python or R. stdlib aims to fill this gap by offering a collection of a wide range of functionalities, from mathematical operations and data structures to utilities for scientific computing, data visualization, machine learning, and beyond. The way this project is going to aid developers and maintainers in addressing issues with their projects, and thereby saving their precious time and energy, will be monumental. Moreover, as this project has more than 4k rows to retrieve and apply queries on it and display all on the screen using the concept of infinite scrolling, it is going to serve as a good platform for me to enhance my knowledge and skills.
This project provides me an opportunity to learn from mentors and experienced contributors. It will also make me more familiar with the vast open source community. I see myself as a better full stack developer after this project.
Qualifications
I possess the relevant
technical skills
andexperience
that align perfectly with the project's requirements. As the project utilizes React.js, Node.js and PostgreSQL database, which are technologies I already know, so this project has a low learning curve for me therefore more time can be utilized in developing the project and making it better than learning technology stacks. Since I have been developing websites inReact.js
andNode.js
for the last 2 years, my learning and experience will help in completing this project on time and with minimal error. I have also learnedPostgreSQL
and how to connect it with node.js using the ‘pg’ library. I recently built a demo-dashboard project for this utiling PostgreSQL, Node.js and React.js, TailwindCSS. I believe that I can complete this project within the given timeline.Prior art
I review the code of the npm statusboard that is shared with the issue, where they are tracking npm project status on a daily basis and displaying the operational status. I reviewed the code on cloning it’s repo. I found that in the frontend they are using html, css, bootstrap and js. and in the backend they are using Node.js for API.
I have read few blogs on google and watched some videos on youtube because the requirements are higher than npm statusboard.
I also read node-postgres docs and also gathered information from AI chatbots to understand concepts quickly.
I read blogs [ link1, link2 ] to understand how to display long lists in reactjs. I learned that I should use react-virtualiIzed for this.
Commitment
I would be able to devote approx 40-50 hours every week to GSOC. During mid May I will have my end-session examinations, thus during this period I will be giving 2-3 hours per day. I will try to complete the project before the GSOC period ends.
I will be devoting my full time to this project and I do not have any other Summer internship or Job. I have no obligations after May, and would be devoting all my time to GSOC.
I would strive to be regular, and sincere with my scrum and daily updates as I understand that selection in this
project will require a serious commitment and 100% devotion from my side.
I would also love to work on its version 2.0 because I know it will take my potential to another level.
My involvement with this organization and the stdlib-js project goes beyond just a summer program.
Schedule
Assuming a 12 week schedule,
Note: This can be revised after mentor suggestion
Community Bonding Period:
Week 1 & 2:
Week 3 & 4:
Week 5 & 6: (midterm)
Week 7, 8 & 9:
Week 10 & 11:
Week 12 :
Final Week:
Related issues
No response
Checklist
[RFC]:
and succinctly describes your proposal.The text was updated successfully, but these errors were encountered: