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

Research planning for foss-profiles v2.0 #68

Closed
3 tasks
jwflory opened this issue Feb 8, 2020 · 6 comments · Fixed by #69
Closed
3 tasks

Research planning for foss-profiles v2.0 #68

jwflory opened this issue Feb 8, 2020 · 6 comments · Fixed by #69
Assignees
Labels
help wanted Extra attention is needed new change Adds new capabilities or functionality question Further information is requested

Comments

@jwflory
Copy link
Member

jwflory commented Feb 8, 2020

Summary

Determine a new way to automatically deploy foss-profiles HTML into a hosting site

Background

This is a new project in 2020 for the @FOSSRIT/tech-team. foss-profiles is one of the oldest projects we have, and it acts like a directory of folks involved with the FOSS community at RIT. To bring it one step further, we want to generate and publish the HTML pages each time a new pull request is merged.

The requirements for v2.0 are as follows:

  • Use YAML files to build and generate profiles for each type of person (alum, faculty, mentor, student)
  • When new PRs are merged into master, automatically generate HTML and publish it on a publicly visible URL
  • Easy way to test changes locally before making a new PR (e.g. build/generate HTML locally)

Details

@10eMyrT and I met at BrickHack 6 and outlined what the interface could look like, some of the tools for the job:

Whiteboard diagram of possible user interface and some tools we could use

We discussed two possible ways of doing this. The decision we make could be a mix of these too, or an idea we haven't considered yet. The emphasis should be on reducing cost and easy maintainability:

  • Apache OpenWhisk
    • Use a cloud platform for hosting serverless OpenWhisk + code
    • Use GitHub webhooks to trigger new builds from commits on master
    • Need somewhere to publish generated HTML
  • Jekyll + GH Pages
    • Jekyll is a common Ruby framework
    • Code hosted in GitHub repo
    • HTML automatically-generated from source, built and published on new commits to master
  • docsify
    • Another tool suggested to us by someone listening in at BrickHack, but I haven't looked into it yet

Outcome

Anyone can view the foss-profiles directory on the web

@jwflory jwflory added help wanted Extra attention is needed new change Adds new capabilities or functionality question Further information is requested labels Feb 8, 2020
@kevinassogba
Copy link
Member

OpenWhisk offers a built-in package for webhook with GitHub event. In case we choose to use it, the aspect of triggering the update of the profile webpage once a PR is authorized will be supported. More info on the package is available here.

@kennedy
Copy link
Member

kennedy commented Feb 9, 2020

The cheapest solution could possibly be using gh-pages without coupling a external webhook and service. I’ve made something slightly similar before a few years ago taking advantage of the _data directory in Jekyll: https://github.com/RITIVCF/ritivcf.github.io/blob/master/_includes/smallgroups.html. In this case I used a single collective yaml file in a _data directory which held all the data and auto generated a div field of each line item. It can be customized to use multi-yaml files instead of one like blog posting.

@kennedy kennedy self-assigned this Feb 9, 2020
@kevinassogba
Copy link
Member

I took a look. It seems exactly like what we were expecting to do. Knowing that the PR are made and the YAML file are stored in a given folder, we can just iterate in the html file to read the data from all the files contained in the respective folder. Thereby, every time someone opens the URL, the web page will auto populate, and provide update-to-date info about the community.

It is simple, works, and does not requires hosting outside; hence no additional cost.

@kennedy
Copy link
Member

kennedy commented Mar 6, 2020

I worked on creating a jekyll based profile page. Here is what I have so far using the minima theme.
I am still working out the icons for the forges, but I might end up just using text urls for now.

Screen Shot 2020-03-06 at 01 45 15-fullpage

@jwflory
Copy link
Member Author

jwflory commented Mar 6, 2020

Whoooaaaaa @kennedy, this is awesome! 😍 You've been busy! Do you think you could get a PR up soon with the work you have so far?

My only feedback is it would be nice to put the different categories (Student, Mentor, Faculty, Alum) on different pages in some sort of navigation bar at the top. The current page is a little long. However, I'd also be okay with a PR merging what you have so far, and then we can try to invite some other folks to help out with the work too.

Another improvement could be to add buttons to navigate to specific names (e.g. a J button brings you to the first J name for a given list). But I wouldn't expect this for a first PR, it could be iterated on later.

@kennedy kennedy linked a pull request Mar 7, 2020 that will close this issue
@kennedy
Copy link
Member

kennedy commented Mar 7, 2020

I created a pr

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed new change Adds new capabilities or functionality question Further information is requested
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants