Skip to content

Commit

Permalink
Start svelte rewrite
Browse files Browse the repository at this point in the history
  • Loading branch information
MaddyGuthridge committed May 17, 2024
0 parents commit efdac18
Show file tree
Hide file tree
Showing 68 changed files with 4,162 additions and 0 deletions.
13 changes: 13 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
.DS_Store
node_modules
/build
/.svelte-kit
/package
.env
.env.*
!.env.example

# Ignore files for PNPM, NPM and YARN
pnpm-lock.yaml
package-lock.json
yarn.lock
30 changes: 30 additions & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/** @type { import("eslint").Linter.Config } */
module.exports = {
root: true,
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:svelte/recommended'
],
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint'],
parserOptions: {
sourceType: 'module',
ecmaVersion: 2020,
extraFileExtensions: ['.svelte']
},
env: {
browser: true,
es2017: true,
node: true
},
overrides: [
{
files: ['*.svelte'],
parser: 'svelte-eslint-parser',
parserOptions: {
parser: '@typescript-eslint/parser'
}
}
]
};
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.DS_Store
node_modules
/build
/.svelte-kit
/package
.env
.env.*
!.env.example
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
engine-strict=true
38 changes: 38 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# create-svelte

Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/main/packages/create-svelte).

## Creating a project

If you're seeing this, you've probably already done this step. Congrats!

```bash
# create a new project in the current directory
npm create svelte@latest

# create a new project in my-app
npm create svelte@latest my-app
```

## Developing

Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:

```bash
npm run dev

# or start the server and open the app in a new browser tab
npm run dev -- --open
```

## Building

To create a production version of your app:

```bash
npm run build
```

You can preview the production build with `npm run preview`.

> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.
19 changes: 19 additions & 0 deletions data/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Data

This directory contains the data used to generate the site. It's in the public
directory so that the images can be delivered at runtime and stuff. That's
kinda yucky but the alternative is to have a separate server for them which is
even more yucky.

* [`projects/`](./projects/): projects I have created or significantly
contributed to.
* [`frameworks/`](./frameworks/): software frameworks
* [`languages/`](./languages/): programming languages
* [`skills/`](./skills/): skills relevant to software engineering

## Build system

In order to construct a website, the data from this directory is gathered and
processed within Next.js to create a static website.

TODO: Document this once I have it working.
15 changes: 15 additions & 0 deletions data/frameworks/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Frameworks

Data about software frameworks.

## `info.json`

Basic information about the framework.

## `icon.png`

The icon for the framework.

## `banner.png`

A banner image to represent the framework.
4 changes: 4 additions & 0 deletions data/frameworks/express/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "Express",
"description": "Express is a JavaScript web framework"
}
4 changes: 4 additions & 0 deletions data/frameworks/fl-studio-midi-controller-scripting/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "FL Studio MIDI Controller Scripting",
"description": "The MIDI Controller Scripting API allows developers to write code that FL Studio can use to communicate with external hardware devices using MIDI"
}
4 changes: 4 additions & 0 deletions data/frameworks/flask/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "Flask",
"description": "Flask is a Python web framework"
}
4 changes: 4 additions & 0 deletions data/frameworks/next/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "Next",
"description": "Next is a JavaScript full-stack web framework"
}
15 changes: 15 additions & 0 deletions data/languages/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Languages

Data about programming languages.

## `info.json`

Basic information about the language.

## `icon.png`

The icon for the language.

## `banner.png`

A banner image to represent the language.
4 changes: 4 additions & 0 deletions data/languages/c/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "C",
"description": "C is great if you don't value your time"
}
4 changes: 4 additions & 0 deletions data/languages/java/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "Java",
"description": "Java is a kinda yucky programming language tbh"
}
4 changes: 4 additions & 0 deletions data/languages/python/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "Python",
"description": "Python is a good programming language"
}
4 changes: 4 additions & 0 deletions data/languages/rust/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "Rust",
"description": "Rust is a very good programming language"
}
4 changes: 4 additions & 0 deletions data/languages/typescript/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "TypeScript",
"description": "TypeScript is a decent programming language"
}
34 changes: 34 additions & 0 deletions data/projects/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Projects

Data about my projects.

## `info.json`

Basic information about the project.

* `name` (`string`): name of the project
* `description` (`string`): short description of the project
* `status` (`string`): status of the project (see
[`status.json`](./status.json))
* `languages` (`string[]`): programming languages used by the project
* `frameworks` (`string[]`): frameworks used by the project
* `skills` (`string[]`): skills demonstrated by the project
* `repo` (`string?`): Repository where the project's source code can be found
* `site` (`string?`): Website where the project is hosted

### `package` (`object?`)

* `command` (`string`): command to install the project
* `url` (`string`): URL for package on a package management website

## `details.txt`

A long-form description of the project.

## `icon.png`

An icon to represent the project.

## `banner.png`

A banner image to represent the project.
1 change: 1 addition & 0 deletions data/projects/chess-ai/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
A currently-incomplete chess engine written in Rust.
12 changes: 12 additions & 0 deletions data/projects/chess-ai/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"$schema": "../project.schema.json",
"name": "Unnamed Chess AI",
"description": "A currently-incomplete chess engine written in Rust",
"status": "Active",
"repo": "https://github.com/MiguelGuthridge/chs",
"languages": ["rust"],
"frameworks": [],
"skills": [
"type-safety"
]
}
1 change: 1 addition & 0 deletions data/projects/enigma-breaker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
An enigma machine emulation and brute-force breaker, written in Rust.
16 changes: 16 additions & 0 deletions data/projects/enigma-breaker/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"$schema": "../project.schema.json",
"name": "Enigma Machine Breaker",
"description": "An enigma machine emulation and brute-force breaker, written in Rust",
"status": "Complete",
"repo": "https://github.com/MiguelGuthridge/Enigma-Breaker",
"languages": [
"rust"
],
"frameworks": [],
"skills": [
"type-safety",
"algorithms",
"cryptography"
]
}
12 changes: 12 additions & 0 deletions data/projects/ensemble-forum/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Ensemble Forum is an education-centred web forum designed to streamline the
process of getting from question to answer for teachers and students alike. It
was my capstone project for
[UNSW's COMP3900 course](https://www.handbook.unsw.edu.au/undergraduate/courses/2022/COMP3900/?year=2022),
where I worked in a team of five students as the lead backend developer. In
this role, I was responsible for the overall design and structure of the
backend, as well as for selecting and enforcing code quality requirements,
including the following:

* 99% code coverage from tests
* Fully type-safe code
* API documentation built from request helper functions
Binary file added data/projects/ensemble-forum/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 16 additions & 0 deletions data/projects/ensemble-forum/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"$schema": "../project.schema.json",
"name": "Ensemble Forum",
"description": "A next-gen education-centred web forum designed for teachers and students alike",
"status": "Complete",
"repo": "https://github.com/EnsembleForum/Ensemble",
"languages": ["python"],
"frameworks": [
"flask",
"piccolo-orm"
],
"skills": [
"type-safety",
"test-driven-development"
]
}
4 changes: 4 additions & 0 deletions data/projects/equator/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Equator is a symbolic maths interpreter that parses, evaluates and solves
simultaneous equations, using the
[`sympy`](https://www.sympy.org/en/index.html) library. It also features a
terminal interface built using ncurses.
19 changes: 19 additions & 0 deletions data/projects/equator/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"$schema": "../project.schema.json",
"name": "Equator",
"description": "A symbolic math interpreter built using Sympy",
"status": "Complete",
"repo": "https://github.com/MiguelGuthridge/Equator",
"languages": ["python"],
"frameworks": [
"sympy",
"ncurses"
],
"skills": [
"static-analysis"
],
"package": {
"url": "https://pypi.org/project/equatorpy/",
"command": "pip install equatorpy"
}
}
4 changes: 4 additions & 0 deletions data/projects/fl-studio-api-stubs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
FL Studio API Stubs is a Python library containing type definitions and
thorough documentation for FL Studio's Python scripting APIs. It can be easily
installed as a project dependency to simplify the process of developing,
maintaining and validating Python scripts that integrate with FL Studio.
Binary file added data/projects/fl-studio-api-stubs/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions data/projects/fl-studio-api-stubs/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"$schema": "../project.schema.json",
"name": "FL Studio API Stubs",
"description": "Type definitions, and full documentation for FL Studio's MIDI Controller Scripting API",
"status": "Active",
"repo": "https://github.com/MiguelGuthridge/FL-Studio-API-Stubs",
"docs": "https://miguelguthridge.github.io/FL-Studio-API-Stubs/",
"languages": ["python"],
"frameworks": [
"fl-studio-midi-controller-scripting",
"mkdocs"
],
"skills": [],
"package": {
"url": "https://pypi.org/project/fl-studio-api-stubs/",
"command": "pip install fl-studio-api-stubs"
}
}
5 changes: 5 additions & 0 deletions data/projects/jestspectation/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Jestspectation is a library containing advanced pattern matching tools to
simplify the process of testing complex data structures. It is used by
[UNSW's COMP1010 course "The Art of Computing"](https://www.handbook.unsw.edu.au/undergraduate/courses/2023/COMP1010/?year=2023)
to help students validate their work easily and reliably, with simple error
messages to help explain where they went wrong when required.
15 changes: 15 additions & 0 deletions data/projects/jestspectation/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"$schema": "../project.schema.json",
"name": "Jestspectation",
"description": "A pattern matching system to make clear and reliable test cases",
"status": "Active",
"repo": "https://github.com/MiguelGuthridge/Jestspectation",
"docs": "https://miguelguthridge.github.io/Jestspectation/",
"languages": ["python"],
"frameworks": ["pytest"],
"skills": [],
"package": {
"url": "https://pypi.org/project/jestspectation/",
"command": "pip install jestspectation"
}
}
3 changes: 3 additions & 0 deletions data/projects/portfolio/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
My portfolio website was designed and developed by me. It is statically
generated using Next.js, with the data specified in a simple directory
structure, making it simple to add and modify data.
11 changes: 11 additions & 0 deletions data/projects/portfolio/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"$schema": "../project.schema.json",
"name": "Portfolio",
"description": "My portfolio website -- you're looking at it",
"status": "Active",
"repo": "https://github.com/MiguelGuthridge/portfolio",
"site": "https://portfolio.miguelguthridge.com",
"languages": ["typescript"],
"frameworks": ["next"],
"skills": []
}
Loading

0 comments on commit efdac18

Please sign in to comment.