Skip to content
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

[DMP 2024]: Auto-updating documentation #1429

Open
5 tasks
MaxGhenis opened this issue Feb 29, 2024 · 11 comments
Open
5 tasks

[DMP 2024]: Auto-updating documentation #1429

MaxGhenis opened this issue Feb 29, 2024 · 11 comments
Labels

Comments

@MaxGhenis
Copy link
Contributor

MaxGhenis commented Feb 29, 2024

Description

We are looking to enhance policyengine.org by building a feature that enables auto-updating documentation within our web application. This new documentation section will be separate from the current research section and will provide interactive content that updates based on our Python package outputs. This will include explainers on topics such as how we measure poverty and inequality, how we project labor supply responses of policy reforms, and what tax and benefit programs we model. This dynamic content would explain the results of our web app and Python package (and coding instructions) with real-world results of our software platform for economic policy analysis.

Goals

  • Design a new website section for documentation creation.
  • Develop functionality to include both static and auto-updating content.
  • Implement interactivity within the documentation using Streamlit apps.
  • Integrate the new section into the main PolicyEngine site for seamless user experience.
  • Goals Achieved By Mid-point Milestone: Completion of design and partial implementation of static content integration.

Setup/Installation

See https://github.com/PolicyEngine/policyengine-app/blob/master/README.md

Expected Outcome

The final product will be a fully integrated documentation section on the PolicyEngine website that provides users with up-to-date information on various policy measures, allows for interactive exploration of data, and seamlessly updates with the latest projections and calculations from our backend systems.

Acceptance Criteria

  • Documentation section is live and functional.
  • Content updates automatically in sync with the latest package data.
  • Users can interact with Streamlit apps without leaving the PolicyEngine website.
  • The documentation section aligns with the overall design and UX of the PolicyEngine website.

Implementation Details

  • React will be used to build the frontend component of the documentation section.
  • Integration with the Python backend will be necessary for dynamic content updates.
  • Streamlit apps will be hosted on our GCP instance and embedded within the documentation pages.
  • The project will follow the existing CI/CD pipeline for deployment.

Mockups/Wireframes

(Mockups and wireframes will be linked here when ready.)

Product Name

PolicyEngine

Organisation Name

PolicyEngine

Domain

  • Financial Inclusion

Tech Skills Needed

  • React
  • Python
  • Streamlit
  • Plotly
  • Data Visualization
  • CI/CD

Mentor(s)

@nikhilwoodruff, co-founder and CTO
@anth-volk, software engineer and developer community manager

Category

  • Documentation
  • Backend
  • Frontend
  • Data Science
  • API

See also #1370 (the functionality developed here could also apply to research reports) and #1371.

@Sayanjones
Copy link

Hey @MaxGhenis I'm excited to contribute to your auto-updating documentation project! I have expertise in all the listed technologies (React, Python, etc.) and am eager to help with both frontend and backend development.

While LLMs aren't mentioned, I believe they could be an asset for content generation, information retrieval, and data visualization suggestions. I'm happy to discuss this further

I'd love to discuss how I can contribute further. Could we schedule a meeting?

@adityaraj-09
Copy link

@MaxGhenis I'm proficient in mentioned tech stacks. Additionally, I'm enthusiastic about open source development and eager to collaborate with others to improve projects like yours.

I would love the opportunity to contribute to this project. Whether it's fixing bugs, adding new features, improving documentation, or anything else, I'm eager to pitch in and help..

@ashuashutosh2211
Copy link

Hey @MaxGhenis I am Ashutosh pursuing B.Tech. in Artificial Intelligence and Data Science at IIT Jodhpur. I am proficient in Python and have done projects on it including machine learning, deep learning and development projects (Django). I have done course on Data Visualisation which included proper undersatnding of different visualisations and had labs on plotly, seaborn, matplotlib in Python and shiny in R.
I went through the projects and found it completely aligns with my interest. I would like to contribute to this project.
It would be great if you assist me further about the project and how to get started with it.

@yuvrajrathva
Copy link

Hi @MaxGhenis, I'm Yuvraj Rathva pursuing B.Tech in Computer Science and Engineering from IIT Jodhpur. I'm excited about the opportunity to contribute to enhancing policyengine.org. With my expertise in React JS, Django, and Python, I believe I can effectively contribute to building the new documentation feature with seamlessly integrated into the platform.

This project interests me me because I possess a solid background in frontend and backend development, particularly in React JS and Django, which are key technologies for this project. My experience in developing visually appealing, responsive websites and implementing interactive features aligns perfectly with the goals of this project.
To know more about my experiences and projects, you can check my Github or Portfolio.

How I Can Contribute:

  • Utilize React JS (and Pure CSS if needed in case) proficiency to design and develop the frontend component for the documentation section.
  • Integrate the frontend with Python backend for dynamic content updates. We will use React Hooks such as useContext, useEffect, useState, etc or if we need it, we can make some custom hooks to make functionality include both static and auto-updating content.
  • We use Docker and CI/CD for efficient deployment and maintenance. We follow the existing CI/CD pipeline for deployment to ensure smooth integration.
  • We implement Streamlit apps so that users can interact with data, adjust parameters, and visualize results dynamically, enhancing engagement and understanding.

@AbhimanyuSamagra
Copy link

Do not ask process related questions about how to apply and who to contact in the above ticket. The only questions allowed are about technical aspects of the project itself. If you want help with the process, you can refer instructions listed on Unstop and any further queries can be taken up on our Discord channel titled DMP queries. Here's a Video Tutorial on how to submit a proposal for a project.

@psankhe28
Copy link
Contributor

psankhe28 commented May 22, 2024

Hello mentors @MaxGhenis @anth-volk @nikhilwoodruff , could you provide information regarding the interview process? Has it already started or is it yet to begin? Thank you!

@anth-volk
Copy link
Collaborator

Thanks for your message, @psankhe28. We are still in the process of finalizing our process, but we expect that for this particular project (#1429), due to a low number of applicants, we likely will not hold interviews. I should have confirmation on that later today.

@psankhe28
Copy link
Contributor

Thanks for your message, @psankhe28. We are still in the process of finalizing our process, but we expect that for this particular project (#1429), due to a low number of applicants, we likely will not hold interviews. I should have confirmation on that later today.

Thank you @anth-volk for replying quickly and for the update!

@anth-volk
Copy link
Collaborator

anth-volk commented May 23, 2024

Final rankings of applicants for this project have been completed via the Unstop platform. Please feel free to let us know if any issues arise.

@psankhe28
Copy link
Contributor

Final rankings of applicants for this project have been completed via the Upwork platform. Please feel free to let us know if any issues arise.

Thank you for the update!

@anth-volk
Copy link
Collaborator

anth-volk commented Jul 9, 2024

Weekly Goals, June

Week 1

  • Learn more about how PolicyEngine structure works
  • Build sandbox dividing Jupyter notebook files into markdown segments and executable Python components

Week 2

  • Explore methods to execute Python in React

Week 3

  • Build prototype using Pyodide (ultimately unable due to limitations within Cython)

Week 4

  • Build prototype of application using nbformat and/or another package
  • Prototype GitHub Actions script to run converted pages
  • Create React component that converts executed Jupyter notebook to webpage

Weekly Goals, July

Week 1

  • As in June, Week 4

Week 2

  • Switch gears: use existing documentation page Jupyter notebook as template
  • Create React component that converts this into a webpage

Week 3

  • Create example GitHub Action script to process existing documentation pages

Week 4

  • Apply styling to tables and graphs to match PolicyEngine design
  • Update left-hand panel to reflect documentation table of contents
  • (Time permitting) Add "show code" cell to the UI

Week 5

  • Design a "landing page" that contains both Streamlit applications and a link to docs for a given country
  • Prototype the above landing page
  • Change styling on tables to Anmol's custom lighter-touch design
  • Add tab to navbar linking to the above landing page

Weekly Goals, August

Week 1

  • Edit jb script within GitHub Actions to remove Sphinx styling and treat GitHub Pages as a light API

Week 2

  • Add fetch script within React component to fetch executed Jupyter notebooks

Week 3

  • Continue working on fetch script for building, then fetching Jupyter notebooks to convert to React components

Week 4

  • As in August, Week 3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Todo
Development

No branches or pull requests

8 participants