WikiEducationFoundation / WikiEduDashboard

Wiki Education Foundation's Wikipedia course dashboard system
https://dashboard.wikiedu.org
MIT License
392 stars 630 forks source link

Convert campaign /programs tab to React #1869

Open ragesoss opened 6 years ago

ragesoss commented 6 years ago

Converting the program list to React will be helpful, especially because it will enable filtering of the list, eg, to show only events that are currently going on.

See also #1756

hjhimanshu01 commented 5 years ago

@ragesoss , Could you please provide more details about the issue , would like to work on this one!

ragesoss commented 5 years ago

@hjhimanshu01 Here's an example of the the campaign "programs" view: https://dashboard.wikiedu.org/campaigns/fall_2018/programs

It's rendered server-side using Rails templates, like most of the /campaigns views.

The design of the campaigns view is very similar to the courses view for an individual course, but for courses, all the tabs (Home, Articles, etc) are rendered client-side in React.

Eventually we'd like to move all of the campaigns views to a similar React-based architecture (so that users can easily navigate from tab to tab, preserving data between tabs and fetching data as needed after the initial render, so that the page feels faster, and just for consistency).

The programs view is a good place to start.

hjhimanshu01 commented 5 years ago

Hey @ragesoss , just a little query , I'm confused as to shall I start making a new component for campaigns page , I have read the code thoroughly these 2 days , so basically I need to route to that component first and then proceed I think , but this would lead to many breaking changes in the code as it is something from scratch ?

ragesoss commented 5 years ago

Yes, this is a fairly big thing that would largely be from scratch. Controller tests would likely need to be replaced, although feature tests ought to work before and after most likely.

hjhimanshu01 commented 5 years ago

Cool ! Thanks @ragesoss ! Would keep working on this issue ! Also , if possible would like to discuss about this issue on slack as this could possibly be a part of GSOC application along side other tasks ?