Code Monkey home page Code Monkey logo

20alse.ssis.nu's Introduction

20alse.ssis.nu

This repository backs up my personal school website, https://20alse.ssis.nu, which will be shut down after I have graduated. It not only preserves all the pages on the original routes that were used to access them, it also handles CI/CD to automatically build, install and push applications.

The repository you're currently viewing acts as a "parent repository" containing submodule links to other repositories that starts with 20alse. and are used for structuring the different projects that are backed up. Some deviations from this naming convention exist and that is because some repositories already existed on GitHub before I started bacing up things that didn't.

List of all backed up websites and projects

Web projects: visible on https://20alse.albins.website/

Name Description
School website The homepage that was the first thing you saw when going into https://20alse.ssis.nu.
School website (Old) Old version of "School website" from circa 2021.
Awesome SSIS Webpage showing awesome resources and helpful links for students attending Stockholm Science & Innovation School (SSIS)
Click the happy man Iconic "cookie clicker"-style game.
Portfolio Portfolio website made in CSS for an assignment in a web development course.
SSIS Fit Website for my project SSIS Fit, a Fitbit app related to the school
Lunch Webpage to show the lunch menu in the school.
Bootstrap Svamphemsida Bootstrap assignment for a web development course. An informative website about picking mushrooms.
Yatzy Final project for web development and interface design courses. A yatzy project made using React with both in-browser and online multiplayer.
Start page assets Images and videos used by the school websites.
Pentry (Legacy) website for showing who has responsibility for the school pentries.
Distans (Legacy, from COVID times) website for showing which group has distance education.

Non-web projects

Name Description
SkySpy My graduation project: a custom and modular weather station system using own PCBs, own firmware, own backend and frontend.
SSIS Discord RPC Unfinished project showing what lesson you are currently attending in your Discord status.
SSIS.nu CSS Themes CSS themes for the Stockholm Science & Innvation School homepage.

About building and publishing web projects

Installing

This repository contains submodules according to the structure above. Make sure to check them out to get all subpages!

Deta

This website is designed to run on Deta, however, it is really a very generic build process. By simply running the script prepare-and-run-handyman.sh (tested on Debian and Ubuntu), a build environment containing the following will be created:

  • Python 3 and pip (latest available versions)
  • Node.js and NPM (20.<latest available subversion>)
  • Ruby and Bundler

not only that, the script will also run handyman.py to create a dist directory based on the mapping in the ROUTES file and the scripts inside the scripts/ directory (read on for more information about that).

Pushing to Deta and updating submodules

On Windows, running .\push_to_deta.bat will update submodules and push the whole code to Deta.

Note regarding Deta

In order for routing of the Yatzy game to work properly, it is pushed as a separate micro. See the Spacefile for reference.

Handyman, the builder ๐Ÿ”จ

Since I am such a creative guy (smiley face), there is a bunch of toolsets, dependencies and other stuff that every application depends on. To create a streamlined interface, I have created building scripts for each repository. They can be found in the scripts folder. These building scripts produce a folder named .build which is then uploaded via my custom Python script. Routing is done in the ROUTES file.

How to handyman

How Handyman works1. Check out the repository you want to add in src or add it manually.
  1. If it does not need any build scripts, do not add anything in the scripts/ folder. Otherwise. create a script with .sh ending (Bash) and add the build scripts that you need to execute.
  2. Edit ROUTES.md to control where the built dist (outputted to a .{repo/folder name}-build directory relative to the working directory) ends up in the dist. Note: examples for this can be found by looking at the scripts/ directory in this repository.
  3. Run the handyman.py script to generate output.
Ignoring files

You can add a .handymanignore-file in any directory in src. Here is its format:

# Comment, will be ignored
(dir) path_to_directory/
(file) file.extension

20alse.ssis.nu's People

Contributors

william04a avatar

Watchers

 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.