You ship, We ship! Our way to validate and reward people building real things.
Find a file
Paweł 90b58de2f1
Merge pull request #3 from Shuflduf/patch-1
Update programs.json to have the website for hack store
2024-12-11 10:27:44 +01:00
index.html Add search functionality 2024-12-10 17:49:01 +01:00
programs.json Merge pull request #3 from Shuflduf/patch-1 2024-12-11 10:27:44 +01:00
README.md Add comprehensive README.md 2024-12-10 01:44:05 +01:00
script.js Refactor program loading to fetch data from JSON 2024-12-10 20:49:49 +01:00
styles.css Enhance UI with animations, transitions, and interactive effects 2024-12-10 21:55:45 +01:00

YSWS-Catalog

YSWS-Catalog is a web-based directory showcasing Hack Clubs "You Ship, We Ship" (YSWS) programs. Each YSWS program rewards participants for building and shipping projects—hardware, software, art, and more—by sending them physical or digital goodies. This repository hosts the source code for the catalog, allowing anyone to explore, filter, and learn about these initiatives. If you want to add or update a program, feel free to submit a pull request!

Features

  • Dynamic Program Listing: All YSWS programs are defined in script.js for easy editing.
  • Filtering by Status: Quickly filter programs by All, Active, Upcoming, or Completed.

Getting Started

  1. Clone the repository:

    git clone https://github.com/PawiX25/YSWS-Catalog.git
    cd YSWS-Catalog
    
  2. Open the catalog:

    • Open index.html in your web browser.
    • Ensure styles.css and script.js are in the same directory.
  3. Filter Programs:

    • Use the top buttons (All, Active, Upcoming, Completed) to filter the displayed programs.

Project Structure

  • index.html: The main HTML file containing the container for program cards.
  • styles.css: Styles for the layout, cards, typography, and responsiveness.
  • script.js: Contains the programs data and logic for:
    • Rendering program cards
    • Counting active programs
    • Filtering by program status

Data Source & Example

All programs are defined in the programs object inside script.js. They are categorized into arrays such as indefinite, limitedTime, upcoming, additional, noYouShip, and completed.

Each program object can include:

  • Required Fields:

    • name: Program name
    • description: Short description of the program
    • status: active, upcoming, or completed
  • Optional Fields:

    • website: URL or null
    • slack: Slack channel URL or null
    • slackChannel: Slack channel name or null
    • deadline: When the program ends (for active/upcoming time-limited programs)
    • ended: When the program ended (for completed programs)

Real Example From This Repository

Below is an example from the limitedTime category in script.js:

{
    name: "HackCraft",
    description: "Create a Minecraft mod, and Hack Club sends you Minecraft Java! Ends January 31st, 2025.",
    website: null,
    slack: "https://slack.com/archives/C07NQ5QAYNQ",
    slackChannel: "#mc-modding",
    status: "active",
    deadline: "Ends January 31st, 2025"
}

Contributing

  1. Fork this repository.
  2. Create a new branch for your changes:
    git checkout -b add-new-program
    
  3. Add or update a program:
    Edit script.js and modify the programs object.
  4. Commit and push your changes:
    git commit -m "Add a new YSWS program"
    git push origin add-new-program
    
  5. Open a Pull Request:
    On GitHub, open a PR from your fork to this repository and provide a description of your changes.