Skip to content

Projects Config

Gerald McAlister edited this page Dec 20, 2018 · 2 revisions

The projects config file lists out any projects you have and want to showoff. It can be either your public GitHub projects as a list, a list of custom projects, or a combination of both! Please note that custom projects provide a much finer granularity of control over what to show!

Properties

The file defines your GitHub username, and a list of custom project objects. The list of custom projects makes up the bulk of this configuration file, should you choose to use it. Note that you cannot exclude GitHub projects currently, so any public projects will be displayed here.

github_username

  • Type: String
  • Default Value: Empty
  • Description: Your GitHub username to pull projects from. Note that each client does the actual pulling, and then caches these. The cache is used should too many requests be made with the same IP. Currently, 1 request pulls all of the projects, so in theory this shouldn't be an issue, but if a bunch of people on a corporate network view your projects page this could cause some issues.

projects

  • Type: List of Project Objects.
  • Default Value: Empty
  • Description: Contains a list of Project Objects to display. The details of the Project Object can be found below.

Project Object

This object contains all of the details for a given project. Many of these properties are optional, with the goal being to simplify adding new projects.

Properties

name

  • Type: String
  • Default Value: Empty
  • Required: Yes
  • Description: The name of the project to display.

description

  • Type: String
  • Default Value: Empty
  • Required: Yes
  • Description: The description of the project. Be sure to watch out for the length of this. This will vary depending on how much text is on each line, so its best to check this as you write it. Future improvements include figuring out a nicer way to handle this.

language

  • Type: String
  • Default Value: Empty
  • Required: Yes
  • Description: The programming language used for this project. This will change going forward to instead be more generic. These are displayed in the top right-hand corner of the cards as abbreviated text (maximum is 3 letters).

repo_url

  • Type: URL
  • Default Value: Empty
  • Required: No
  • Description: A URL to the projects repository. Going forward, this may be renamed to be less engineering specific.

download_url

  • Type: URL
  • Default Value: Empty
  • Required: No
  • Description: A URL to download the project. Can be used to allow others to download your projects from your webpage.

updated_at

  • Type: DateTime
  • Default Value: Empty
  • Required: Yes
  • Description: The last time that this project was updated. Used to list out projects from most recent to oldest.

demo_url

  • Type: Demo Object
  • Default Value: Empty
  • Required: No
  • Description: This is a Demo Object, which allows you to embed a live demo into the webpage using an iFrame. This means people can try to use your project directly from your site if it is a web app. Note however that you'll want to ensure browser compatibility! More information on this object can be found below.

media_urls

  • Type: List of Media Objects
  • Default Value: Empty
  • Required: No
  • Description: This is a list of Media Objects that can be used to place videos, images, etc. into your projects page. More details on this object can be found below.

Demo Object

This object contains information to place an in-page demo of your project. Again, please check what browsers your project is compatible with before using this!

Properties

title

  • Type: String
  • Default Value: Empty
  • Required: Yes
  • Description: The title of the demo to display.

url

  • Type: URL
  • Default Value: Empty
  • Required: Yes
  • Description: A URL to your web application. This will be placed into an iFrame and displayed to the user! Consider your websites security before placing strange URLs here!

Media Object

This object contains a piece of media for your object. Compatible with various media formats, with plans to add more over time! Currently, the list of supported formats are as follows:

  • YouTube Video URLs
  • Vimeo Video URLs
  • Native Web Video URLs (.mp4, .ogg, and .webm specifically)
  • Images (.png, .gif, .bmp, .svg, .jpg, and .jpeg specifically)

Properties

title

  • Type: String
  • Default Value: Empty
  • Required: Yes
  • Description: The title of the media to display.

url

  • Type: URL
  • Default Value: Empty
  • Required: Yes
  • Description: A URL to your media. Can also be a YouTube video URL or Vimeo URL! (No need for the embed-able link!)

Example Configuration

{
    "github_username": "gemisis",
    "projects": [
        {
            "name": "MNIST Demo",
            "description": "A very simple example of creating, training, and deploying an MNIST machine learning model. Utilizes Keras in TensorFlow for creating and training the model, TensorFlow JS for the web deployment, and TensorFlow Lite for the Android application.",
            "language": "Python",
            "repo_url": "https://github.com/GEMISIS/MNIST",
            "media_urls": [
                {
                    "title": "Android Demo Landscape",
                    "url": "https://github.com/GEMISIS/MNIST/raw/master/screenshots/mnist-android-2.png?raw=true"
                },
                {
                    "title": "Web Demo 1",
                    "url": "https://github.com/GEMISIS/MNIST/raw/master/screenshots/mnist-web-1.png?raw=true"
                },
                {
                    "title": "Web Demo 2",
                    "url": "https://github.com/GEMISIS/MNIST/raw/master/screenshots/mnist-web-2.png?raw=true"
                },
                {
                    "title": "Android Demo Portrait",
                    "url": "https://github.com/GEMISIS/MNIST/raw/master/screenshots/mnist-android-1.png?raw=true"
                }
            ],
            "demo_url": {
                "title": "Demo",
                "url": "https://geraldmcalister.com/ml/mnist/index.html"
            },
            "updated_at": "2018-11-06"
        },
        {
            "name": "The Guidance Team",
            "description": "A full-fledged virtual reality game for Oculus Go and GearVR devices. Created under my own LLC, <a href=\"http://www.rgbschemes.com/games/the-guidance-team/\" target=\"_blank\">RGB Schemes</a>. The game is a third person shooter where players progress through levels killing zombies. A pretty straightforwad game.",
            "language": "Unity",
            "download_url": "https://www.oculus.com/experiences/gear-vr/1215714368477357/",
            "media_urls": [
                {
                    "title": "Trailer",
                    "url": "https://www.youtube.com/watch?v=EBU_D3_oZpY"
                },
                {
                    "title": "Screenshot 1",
                    "url": "images/custom/tgt-sc1.png"
                },
                {
                    "title": "Screenshot 2",
                    "url": "images/custom/tgt-sc2.png"
                },
                {
                    "title": "Screenshot 3",
                    "url": "images/custom/tgt-sc3.png"
                }
            ],
            "updated_at": "2018-03-14"
        },
        {
            "name": "Error",
            "description": "A simple WebGL first person shooter using ThreeJS and PhysiJS. The idea behind this was to give users the ability to play entire games inside their web browser natively. Created in less than 24 hours.",
            "language": "HTML",
            "repo_url": "https://github.com/GEMISIS/Error",
            "media_urls": [
                {
                    "title": "Screenshot",
                    "url": "images/custom/error-sc1.png"
                }
            ],
            "demo_url": {
                "title": "Demo",
                "url": "https://geraldmcalister.com/Error/index.html"
            },
            "updated_at": "2015-03-02"
        }
    ]
}

Clone this wiki locally