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

6.0.2 Milestone Tracker | Enhance codebase readability and documentation #771

Open
7 of 33 tasks
lasryariel opened this issue Aug 29, 2024 · 4 comments
Open
7 of 33 tasks
Labels
Complexity: Extra Large Issue requires significant research and proposal to determine feasibility. Feature: Tech Debt Milestone Tracker Issues which are used to track overall progress/notes for a milestone points: 3 Can be done in 13-18 hours Role: DevOps

Comments

@lasryariel
Copy link
Member

lasryariel commented Aug 29, 2024

Overview

In order to better engage dev volunteers, especially more junior volunteers, we need to make our codebase more readable and provide better documentation.

Action Items

  • See if there is Hack for La best practices documentation that can help with this effort - Lola to ask Bonnie
    • Website team has some wiki pages we could mimic
    • Heejung Hong could be a resource. Dev for TDM Calculator is good example of team effectively working with jr developers and quality code
  • Add any additional milestones needed below and validate timeline
  • Commit a dev to attend weekly devops
  • Implement Decision Records for Architecture #785 - Ready to discuss with team, Link to page created in Wiki

Backend

6.0.2.1 FastAPI

RBAC

Data Modeling/Object Design/Code Cleanup

  • Create one very clear API method with best practice. Object Design (figma board link)
  • Cleanup interface oriented patterns on backend (decouple database code from http code) - when we get to this, identify specific areas of code which need to be looked at and assign it out

Documentation

Onboard backend Devs

  • Determine how many we need

Frontend

No system in place for adding components/services. (Not a blocker for onboarding resources)

  • Write documentation
  • Refactor (file structure/folders)

Github Wiki

Developer Experience

Once the items above are complete, we can work on Developer Experience improvements, and potentially recruit a volunteer as a Developer Experience Expert. This would entail improvement to tooling, integrations, unit tests, storybook, Figma integration. We should prioritize items that improve developer efficiency/junior developer accessibility.

Resources/Instructions

@lasryariel
Copy link
Member Author

lasryariel commented Sep 4, 2024

@lasryariel lasryariel added the Milestone Tracker Issues which are used to track overall progress/notes for a milestone label Sep 4, 2024
@lasryariel
Copy link
Member Author

lasryariel commented Sep 6, 2024

Positive research outcomes for FastAPI

  • opinionated, but customizable
  • compatible with Flask but faster

Bulk of follow up lift

  • Data Modeling - capture top level entities and related data through Section 2
    • the goal is to have a great example that new devs could be pointed
  • declarative vs imperative code
  • code can be ported as is, but we could convert to the FastAPI conventions for things like RBAC
    • Our current code is "lower level"
    • conversion would be clearer/easier for new devs
    • typing makes tooling integration better (clearer errors, will stop you from running bad code)

Dependency injection helps with refactoring/modularity

Follow up:

  • Convert this to a decision record

Erik on RBAC - looked over sign up/sign in
Tyler

  • Wants to do a big merge first of an existing PR
    Erik
  • Create "trunk-type" branch to split off ("Main-FastAPI"
  • will be using Python Package Manager - Poetry - Python dependency manager - similar to NPM
  • create folder and scaffold - to be used as a starting point
  • start with sign in sign up
  • plug it in with the client, such that you can start the new api and see what is working
  • confirm we are ready to deprecate flask
    John and Paul
  • Pydantic/Sql Alchemy and dependency injection
  • Look at existing code to see what needs to be ported over - John available to help.
    • Look at configuration injection
    • Sort through to see which items to convert actually give us benefit vs which port over fine without change
    • focus on what adds clarity to the code

Team can focus on this lift (Paul, Erik, John)

Tyler can focus on incubator migration

@lasryariel
Copy link
Member Author

Endpoints:

  • /users/{userId}
  • /serviceProviders
  • /serviceProviders/{providerId}
  • /host
  • /auth/signup/host
  • /auth/signup/coordinator
  • /auth/signin
  • /auth/resend_confirmation_code
  • /auth/confirm
  • /auth/signout
  • /auth/session
  • /auth/refresh
  • /auth/forgot_password
  • /auth/forgot_password/confirm
  • /auth/user
  • /auth/private
  • /auth/google
  • /auth/google/sign_up
  • /auth/google/sign_in
  • /auth/new_password
  • /auth/invite
  • /auth/confirmInvite
  • /forms
  • /forms/{form_id}
  • /responses/{f

@lasryariel
Copy link
Member Author

  • Erik has auth related PR ready for review

  • John working on invite guest end points

  • Paul working on mock local dev environment

  • Erik to review front end for cleanup (file moves, restructure, orphaned components, fastapi compatibility, documentation/best practices)

    • knowledge transfer before Erik starts job on 30th

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Complexity: Extra Large Issue requires significant research and proposal to determine feasibility. Feature: Tech Debt Milestone Tracker Issues which are used to track overall progress/notes for a milestone points: 3 Can be done in 13-18 hours Role: DevOps
Projects
Status: EPICS and Tracking
Development

No branches or pull requests

2 participants
@lasryariel and others