Skip to content
This repository has been archived by the owner on Jun 9, 2023. It is now read-only.

Meeting Notes August 1, 2020

Jim Ciallella edited this page Aug 1, 2020 · 8 revisions

Before you dive into the notes, please make sure you have read the following:

In Attendance

Current Status

Project Direction

Quincy shared thoughts about online events / conferences / meetups continuing to depend heavily on in-person events after the pandemic. He has observed a decline in engagement in many of the online conferences or events he's attended recently . Plus, Comic-Con, one of the largest in North America, had a significant decline in attendance even though the online event was free.

Refactoring to TypeGraphQL

Fran asked to compare Redux + SWR + React 3 to TypeGraphQL.

We have a large Redux store, which caches API responses, but it comes with a lot of extra lines of boilerplate code. We're also using Typescript, which adds additional code bloat.

He said TypeGraphQL would significantly simplify the front-end code. TypeGraphQL infers types and builds resolvers, which simplify the code and handle some things we otherwise need to do manually.

One downside is the back-end structure wouldn't be as familiar as the current well-known Express backend.

Jonathan raised concerns about the refactor. Fran said a refactor would keep most of the code the same, but with wrappers for GraphQL.

Timmy suggested contributing may be harder since it's a new abstraction. Fran said the JSON definitions should be easier for new-comers to read and understand than the bloated Redux code.

Quincy shared a cautionary tale about adopting tools too early, as the freeCodeCamp project did in the past with LoopBack.

If the project is easy to swap in, and swap out, then Quincy agreed with the change. He said GraphQL is well-used and TypeGraphQL appears to be well-supported with well-written documentation already in existence.

Timmy agreed GraphQL is solid, but that TypeGraphQL is still relatively new and not set in stone.

Fran said if we could replace TypeGraphQL in the future without touching the client as long as community guidelines are followed with the refactor.

Jim asked how a REST vs GraphQL change would impact 3rd party API clients. Fran said this would replace the REST API with GraphQL. GraphQL is self-documenting and type-safe and should be "simpler" for 3rd parties to interact with the API.

App Reload Speed Concerns

Fran also asked about splitting the NEXT.js portions into two apps to speed up the 30-60 seconds it currently takes to reload the custom server.

We didn't agree to the reason for the slowness, or the need to refactor this area. Timmy will review Fran's PR regarding this issue.

Staging Environment / Hosting

Ayotomide suggested a staging environment to deploy each master branch merge to a persistent Chapter's staging subdomain. This would allow people to see the latest working code at a consistent URL.

Fran shared a few notes on the costs and options for deploying to a host like Digital Ocean or Vultr. Though, Fran still prefers Heroku and it's ability for an instance owner to edit their environment variable / configuration in the Heroku secrets / variable interface.

Ayotomide suggested the staging server's deploy process should closely mirror whatever "1-click" hosting deploy is suggested / supported for the early Chapter instances.

Quincy suggested we pay for Heroku, since it's the most likely hosting platform we'll promote to early adopters because of the simplicity of deployment and administration.

Fran is going to setup a free Heroku. Oliver, Ayotomide, and Fran will work together to setup and copy a working Heroku configuration to a paid freeCodeCamp Heroku teams account.

Email

Jonathan is looking into the tech stack at this point and hasn't jumped into the email issues.

There are at least 12 issues on the MVP issues board with email in the issue title. Jim suggested, and later tagging, these issues with an "Email" tag.

Bodo offered to be part of the email conversations.

Public-facing Interfaces

Ayotomide is working on the admin interfaces and is going to move recent work, plus his prior Figma user flows, into the main Figma account and mockups.

Vivek granted Figma edit rights with Ayotomide.

Auth

Patrick was able to get authentication setup with Auth0 and Google.

He asked if we could use Passport.js instead of Auth0. Quincy and Fran agreed.

Documentation

The Owner FAQs page now has roughed-in notes on hosting codes. Plus, an online of system dependencies / variables, such as an email / SMTP server, Google Auth account, and local vs S3 compatible file storage.

Next Steps

  • Fran will refactor the code in the coming days to use TypeGraphQL.
  • The rest of us will wait for his refactor and continue work on our specific areas.
  • Newer contributors were encouraged to setup a local environment, ask questions on Discord, and can find the "Beginner Friendly" issues tagged on Github.
  • Oliver, Ayotomide, and Fran will meet on setting up a Heroku staging environment
  • Ayotomide will merge his work into the Figma mockup project
  • Timmy will review Fran's PR regarding the 30-60 second slowness when the app server is restarted.

Next Meeting

Quincy will share an invite for the Saturday, August 15th meeting at the same time, 18:00 UTC.