edX React Hackathon 2023
Participants: (with github handles)
@Ben Warzeski (Deactivated) - muselesscreator (organizer)
@Cindy Nguyen - cintnguyen
@Mena Hassan - httpsmenahassan
@Jakub Szewczulak -jszewczulak
Schedule:
Monday 10/23
11AM EST: http://meet.google.com/ezm-juos-uci https://drive.google.com/file/d/1EkRGOkxOB1J-rRW6KMDG3aOJJ5FZjHe3/view?usp=drive_link
Meet and give overview
Create Git repository
Copy template repo
Configure devstack to allow api connection
“What is a UI?”
1PM-3PM EST: http://meet.google.com/zmo-kkbi-szh https://drive.google.com/file/d/1PyfidlP22_JGdlRpMTCWmR_aMCaBAqlb/view?usp=drive_link
Walkthrough and React Fundamentals:
Initialize app
Fetch data from a variety of devstack apis
Display data in generic JSX
Generate custom display of devstack API data with Paragon components
Send messages to devstack API and update on response
Topics to review:
How does a react app “initialize”? What is different about MFE initialization? Why?
Brief understanding of tools:
Webpack
Babel
Eslint
Jest
Helpful simple ES6 syntax
React components
What makes a component?
How to define PropTypes?
What makes a component update (component lifecycle)?
Behavior vs render
Basic hooks for render (useState, useEffect)
Generic custom hook extraction
How to test generic react behavior
Network interaction
What are Promises? How do they work? How do we work with them?
How do we make asynchronous network requests?
Where should network requests be defined in the project?
How do we load data in from network api sources?
Tuesday 10/24
11AM-12PM EST http://meet.google.com/fpc-eeqk-vkd
How to test network code?
What do we test? Why? How?
How to cleanly internationalize strings?
1PM-3PM EST: http://meet.google.com/xbc-qfzd-fsq
Coding user interaction and app-level state (user selection of which api method to display).
Topic generation for individual projects
Wednesday 10/25:
11AM-12PM EST: http://meet.google.com/hnn-euwt-amq
Shared working session
1PM-3PM EST: http://meet.google.com/axv-ofpc-jmt
Shared working session
Base Project
Build a custom MFE that connects to the devstack and loads data from a variety of devstack api sources.
Initial apis: [courses, course blocks, mfe context, instructor reports, bulk emails schedule]
Generate JSX display for asynchronously loaded api data
Allow user to send an api command (unenroll from course)
Create global state tracking for which api(s) to display, provide UI to manage, and update the UI accordingly.
Demo Goals
Do Something with data from an api source (even if not an edx source).