GithubHelp home page GithubHelp logo

misc-website's Introduction

MISC

MISC Website

landing-page-preview

Purposes:

  • Expand the club's brand image
  • Provide information about the club and how to join
  • Provide information about all MISC events
  • Be the home of "challenge of the week" posts and writeups [soonβ„’]

Development and Maintenance

The website is a static site built using Gatsby which is based on React and uses GraphQL to access data.

πŸš€ Quick start

Clone the repository. The rest of this guide will assume you are in the root of the repository.

  1. Install the Gatsby CLI
yarn global add gatsby-cli

# or if you must...
npm install -g gatsby-cli
  1. Install packages
yarn install

# or if you must...
npm install
  1. Start the development server
gatsby develop

A hot-reloading development environment should now be accessible at localhost:8000.

πŸ—‚ Project Structure

.
|-- node_modules
|-- content
    |-- gallery
|-- src
|  |-- components
|  |-- templates
|  |-- images
|  |-- pages
|  |-- events
|  |-- posts
|  |   |-- 2019-10-06-post1 (folder)
|  |   |   β””-- index.md
|  |   β””-- ...
|  β””-- styles
|-- static
|-- .gitignore
|-- gatsby-browser.js
|-- gatsby-config.js
|-- gatsby-node.js
|-- package-lock.json
|-- package.json
β””-- README.md
  1. /node_modules: This directory contains modules used and is created when you run yarn install or npm install.

  2. /static: Contains files that will be copied to the root of the /public build directory. Use this for linking files hosted on the website.

  3. /src: Contains most of the stuff needed to build the website.

    1. components: Contains .js files all of which export a React component that will probably be used in a file in either pages or templates or both.

    2. templates: Contains .js files all of which export a React component that will probably be used to generate pages (see the bit on gatsby-node.js).

    3. images: Contains images and other assets.

    4. pages: Contains the static pages (React components). Each page is automatically loaded by Gatsby and turned into a route on the website. For example, the index.js file in the pages directory exports a React component that will render on the route /index.

    5. posts: Contains folders which themselves contain a markdown file (and any other assets used by said markdown file) which will get built into a route using the blog-post.js template in templates. This should be one of the most active directories in the sense that new content can be loaded onto the site easily by creating files in this directory. The naming convention YYYY-MM-DD-post-title should be used for subdirectories.

    6. events: Contains folders which themselves contain a markdown file (and any other assets used by said markdown file) which will get built into a route using the event-post.js template in templates. Naming convention same as above.

    7. styles: Contains SASS files as well as standard CSS files. These files need to be imported by the component/template/page that uses them. E.g. at the top of the blog-template.js file, there is an import '../styles/blog.sass' statement.

  4. content/gallery: This folder contains all the club pictures loaded into the gallery page. Add new pictures here.

  5. gatsby-browser.js: This file is where Gatsby expects to find any usage of the Gatsby browser APIs (if any). These allow customization/extension of default Gatsby settings affecting the browser. This does not do a lot at the moment.

  6. gatsby-config.js: This is the main configuration file for a Gatsby site. This is where site (metadata) like the site title and description is specified, and where Gatsby plugins can be include from. (Check out the config docs for more detail).

  7. gatsby-node.js: This file is where Gatsby expects to find any usage of the Gatsby Node APIs (if any). These allow customization/extension of default Gatsby settings affecting pieces of the site build process. Current usage of this file includes building pages from the markdown files in the posts directory.

πŸ‘¨β€πŸ’» Contributors

🧐 Issues

Any issues should be reported to Joseph via Discord or Slack or by making an issue in this repository.

misc-website's People

Contributors

josephsurin avatar asilmian avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.