Open miccheng opened 5 years ago
That's a great idea @miccheng, I would like to help out. A couple of thoughts:
1) how do we organise work between volunteers, and 2) how do we decide feature priorities?
I assume you already have something in mind 😁
how do we organise work between volunteers
I will probably setup a Pivotal Tracker board.
how do we decide feature priorities?
The 3 sections above can be worked on independently. The management website just updates a database. The API server reads from the DB. The static site just calls the API.
Just need to decide on the schema and API contract first.
How about using GitHub projects instead? It's Trello-like, and I think easier to correlate PRs with open tickets.
Also, been reading about Gatsby, looks like a good fit for the front-end. Any thoughts about the backend stack?
For section 1 and 3 (the front end), we need to give a review in layout and style and user experience of the website. I will want to get involved in the two sections.
Also, need to make all components unit testable. Better if we can make use of automated testing.
I would like to start working on the API server @miccheng, any thoughts on the stack, CI tools, and potential hosting provider?
I can work with any tech... But, if you don't have any preference, I can start with Elixir + Phoenix, and use Travis to run automated tests.
Travis-CI definitely!
Was thinking either Go or Elixir/Phoenix cos of their superior GraphQL server support.
No experience with Elixir though.
How about I set it up and you can review it then?
Do you have an existing DB that I can hook into? I'll pick an entity (e.g. videos) and expose it as a GraphQL object type.
@hhandoko beware of existing database that is used by the current engineers.sg website.
GatsbyJS is super complex last time I checked. Couldn't a Makefile suffice?
@yingkh it's a roundabout way of saying: "please give me the credentials for the test / prod DB" 😁
I find it's also much easier to understand the schema when I can correlate the DB data with the website output.
@miccheng can you create a new (blank) repo for me or grant me permission to create one?
@hhandoko Here's the schema file for the current website: https://github.com/engineersftw/website/blob/master/db/schema.rb
Here's the schema file for the volunteers website: https://github.com/engineersftw/esg-servers/blob/master/video_uploader/db/schema.rb
Hopefully can combine them to shed some light. The website now uses Episode
as the video entity. The volunteer site uses Presentation
which is closer to what i want.
I would suggest coming up with a GraphQL schema file first before jumping into building the API server. WDYT?
For sure, let me have a look at the schema first and open up a new issue to track it there 👌
@hhandoko I have uploaded the first draft of the GraphQL Schema with the current entities mapped as Type
items.
Here's the GitHub repo: https://github.com/engineersftw/esg-graphql
I have added you as a collaborator.
I don't have any comments on the first draft, so perhaps I'll get started on the Phoenix app, focusing on the Presentation entity first.
Cool! On Sun, 11 Nov 2018 at 10:30 AM, Herdy Handoko notifications@github.com wrote:
I don't have any comments on the first draft, so perhaps I'll get started on the Phoenix app, focusing on the Presentation entity first.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/engineersftw/website/issues/37#issuecomment-437638329, or mute the thread https://github.com/notifications/unsubscribe-auth/AAM8DGtH7WuYc-ZSmcwSxXidxcswjgamks5ut4vcgaJpZM4X--sM .
Prisma could be a nice ORM to have, see https://www.prisma.io/docs/prisma-graphql-api/reference/queries-qwe1/
Proposal
Goal: Split up the website into a few discreet components
Video listing site
API server (GraphQL) - to be used by frontend and other services
Management Website