Compare commits
2 Commits
Author | SHA1 | Date |
---|---|---|
DutchEllie | da55b65a42 | |
DutchEllie | 62bac12144 |
|
@ -1,3 +1,8 @@
|
||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
name: newsite
|
name: newsite
|
||||||
version: v0.0.3
|
version: v0.0.4
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
- name: mariadb
|
||||||
|
repository: https://charts.bitnami.com/bitnami
|
||||||
|
version: 11.1.8
|
|
@ -26,4 +26,16 @@ ingress:
|
||||||
- host: example.com
|
- host: example.com
|
||||||
paths:
|
paths:
|
||||||
- path: /
|
- path: /
|
||||||
pathType: Prefix
|
pathType: Prefix
|
||||||
|
|
||||||
|
mariadb:
|
||||||
|
auth:
|
||||||
|
database: website
|
||||||
|
username: ellie
|
||||||
|
password: ellie
|
||||||
|
rootPassword: ellie
|
||||||
|
primary:
|
||||||
|
service:
|
||||||
|
port: 3306
|
||||||
|
persistence:
|
||||||
|
size: 3Gi
|
|
@ -1,6 +1,8 @@
|
||||||
baseURL: changeme.dutchellie.nl
|
baseURL: changeme.dutchellie.nl
|
||||||
name: changeme-prod
|
name: changeme-prod
|
||||||
containerEnv:
|
containerEnv:
|
||||||
|
- name: NODE_ENV
|
||||||
|
value: production
|
||||||
# - name: APIURL
|
# - name: APIURL
|
||||||
# value: https://api.quenten.nl/api
|
# value: https://api.quenten.nl/api
|
||||||
service:
|
service:
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
baseURL: changemestaging.dutchellie.nl
|
baseURL: changemestaging.dutchellie.nl
|
||||||
name: changeme-staging
|
name: changeme-staging
|
||||||
containerEnv:
|
containerEnv:
|
||||||
|
- name: NODE_ENV
|
||||||
|
value: staging
|
||||||
# - name: APIURL
|
# - name: APIURL
|
||||||
# value: https://api.quenten.nl/api/testing
|
# value: https://api.quenten.nl/api/testing
|
||||||
service:
|
service:
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -11,7 +11,8 @@
|
||||||
"check": "svelte-check --tsconfig ./tsconfig.json",
|
"check": "svelte-check --tsconfig ./tsconfig.json",
|
||||||
"check:watch": "svelte-check --tsconfig ./tsconfig.json --watch",
|
"check:watch": "svelte-check --tsconfig ./tsconfig.json --watch",
|
||||||
"lint": "prettier --check --plugin-search-dir=. . && eslint .",
|
"lint": "prettier --check --plugin-search-dir=. . && eslint .",
|
||||||
"format": "prettier --write --plugin-search-dir=. ."
|
"format": "prettier --write --plugin-search-dir=. .",
|
||||||
|
"knex": "node --loader ts-node/esm node_modules/.bin/knex --knexfile src/lib/db/knexfile.ts"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@sveltejs/adapter-auto": "next",
|
"@sveltejs/adapter-auto": "next",
|
||||||
|
@ -38,7 +39,11 @@
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"js-sha256": "^0.9.0",
|
"js-sha256": "^0.9.0",
|
||||||
|
"knex": "^2.2.0",
|
||||||
|
"mysql2": "^2.3.3",
|
||||||
|
"sqlite3": "^5.0.11",
|
||||||
"svelte-gestures": "^1.4.1",
|
"svelte-gestures": "^1.4.1",
|
||||||
"svelte-language-server": "^0.14.29"
|
"svelte-language-server": "^0.14.29",
|
||||||
|
"ts-node": "^10.9.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
Hi, I am Quenten (aka, DutchEllie). I am the creator of this website. Thanks for checking it out! I
|
Hi, I am DutchEllie. I am the creator of this website. Thanks for checking it out! I made this
|
||||||
made this website partly to have some project to express myself with and to learn some new skills.
|
website partly to have some project to express myself with and to learn some new skills.
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
I am a {years} year old person from The Netherlands. I am still a student and I am aspiring to be a
|
I am a {years} year old person from The Netherlands. I am still a student and I am aspiring to be a
|
||||||
|
@ -22,16 +22,7 @@
|
||||||
class="underline text-[#002896] dark:text-blue-200 dark:hover:text-blue-50 hover:text-blue-500"
|
class="underline text-[#002896] dark:text-blue-200 dark:hover:text-blue-50 hover:text-blue-500"
|
||||||
href="https://dutchellie.nl/DutchEllie/proper-website-2">DutchEllie/proper-website-2</a
|
href="https://dutchellie.nl/DutchEllie/proper-website-2">DutchEllie/proper-website-2</a
|
||||||
>.
|
>.
|
||||||
<br />
|
<br>
|
||||||
<br />
|
<br>
|
||||||
You can contact me if you want at
|
As for other things, here is a list!
|
||||||
<a
|
|
||||||
class="underline text-[#002896] dark:text-blue-200 dark:hover:text-blue-50 hover:text-blue-500 "
|
|
||||||
href="mailto:contact@quenten.nl">contact@quenten.nl</a
|
|
||||||
>.
|
|
||||||
|
|
||||||
<br />
|
|
||||||
<br />
|
|
||||||
|
|
||||||
As for other things I like, here is a list!
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
<div class="h-5 w-11/12 bg-indigo-300 rounded-xl" />
|
<div class="h-5 w-11/12 bg-indigo-300 rounded-xl" />
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-1 h-5 flex-grow bg-indigo-900 rounded-xl">
|
<div class="mb-1 h-5 flex-grow bg-indigo-900 rounded-xl">
|
||||||
<div class="h-5 w-3/12 bg-indigo-300 rounded-xl" />
|
<div class="h-5 w-2/12 bg-indigo-300 rounded-xl" />
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-1 h-5 flex-grow rounded-xl">
|
<div class="mb-1 h-5 flex-grow rounded-xl">
|
||||||
<div class="h-5 w-7/12 rounded-xl" />
|
<div class="h-5 w-7/12 rounded-xl" />
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
<div class="h-5 w-8/12 bg-indigo-300 rounded-xl" />
|
<div class="h-5 w-8/12 bg-indigo-300 rounded-xl" />
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-1 h-5 flex-grow bg-indigo-900 rounded-xl">
|
<div class="mb-1 h-5 flex-grow bg-indigo-900 rounded-xl">
|
||||||
<div class="h-5 w-5/12 bg-indigo-300 rounded-xl" />
|
<div class="h-5 w-4/12 bg-indigo-300 rounded-xl" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -2,12 +2,10 @@
|
||||||
import {fly} from "svelte/transition";
|
import {fly} from "svelte/transition";
|
||||||
import {swipe} from "svelte-gestures";
|
import {swipe} from "svelte-gestures";
|
||||||
import Button from './navbutton.svelte';
|
import Button from './navbutton.svelte';
|
||||||
import { browser } from '$app/env';
|
|
||||||
export /**
|
export /**
|
||||||
* @type {any}
|
* @type {any}
|
||||||
*/
|
*/
|
||||||
let open;
|
let open;
|
||||||
$: if (browser) document.body.classList[open ? 'add' : 'remove']('overflow-hidden');
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#if open}
|
{#if open}
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
import knex from "knex";
|
||||||
|
import configs from "./knexfile";
|
||||||
|
|
||||||
|
const config = configs[process.env.NODE_ENV || "development"];
|
||||||
|
|
||||||
|
const db = knex(config);
|
||||||
|
|
||||||
|
export default db;
|
|
@ -0,0 +1,54 @@
|
||||||
|
import type { Knex } from "knex";
|
||||||
|
|
||||||
|
// Update with your config settings.
|
||||||
|
|
||||||
|
const config: { [key: string]: Knex.Config } = {
|
||||||
|
development: {
|
||||||
|
client: "sqlite3",
|
||||||
|
connection: {
|
||||||
|
filename: "/home/quenten/Documents/repos/dutchellie.nl/DutchEllie/svelte-website/src/lib/db/dev.sqlite3"
|
||||||
|
},
|
||||||
|
debug: true,
|
||||||
|
useNullAsDefault: true,
|
||||||
|
migrations: {
|
||||||
|
extension: 'ts',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
staging: {
|
||||||
|
client: "mysql",
|
||||||
|
connection: {
|
||||||
|
database: "website_staging",
|
||||||
|
user: "ellie",
|
||||||
|
password: "ellie"
|
||||||
|
},
|
||||||
|
pool: {
|
||||||
|
min: 2,
|
||||||
|
max: 10
|
||||||
|
},
|
||||||
|
migrations: {
|
||||||
|
tableName: "knex_migrations",
|
||||||
|
extension: 'ts',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
production: {
|
||||||
|
client: "mysql",
|
||||||
|
connection: {
|
||||||
|
database: "website",
|
||||||
|
user: "ellie",
|
||||||
|
password: "ellie"
|
||||||
|
},
|
||||||
|
pool: {
|
||||||
|
min: 2,
|
||||||
|
max: 10
|
||||||
|
},
|
||||||
|
migrations: {
|
||||||
|
tableName: "knex_migrations",
|
||||||
|
extension: 'ts',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
export default config;
|
|
@ -0,0 +1,19 @@
|
||||||
|
import type { Knex } from "knex";
|
||||||
|
|
||||||
|
|
||||||
|
export async function up(knex: Knex): Promise<void> {
|
||||||
|
return knex.schema.createTable("users", (table) => {
|
||||||
|
table.increments("userid", { primaryKey: true });
|
||||||
|
table.string("username", 255).notNullable;
|
||||||
|
table.string("email", 255).notNullable;
|
||||||
|
table.string("password", 64).notNullable;
|
||||||
|
table.string("website", 255);
|
||||||
|
table.timestamps(true, true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export async function down(knex: Knex): Promise<void> {
|
||||||
|
return knex.schema.dropTable("users");
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
import type { Knex } from "knex";
|
||||||
|
|
||||||
|
|
||||||
|
export async function up(knex: Knex): Promise<void> {
|
||||||
|
return knex.schema.createTable("music", (table) => {
|
||||||
|
table.increments("musicid", { primaryKey: true });
|
||||||
|
table.string("ytlink", 255);
|
||||||
|
table.integer("userid");
|
||||||
|
table.foreign("userid").references("userid").inTable("users");
|
||||||
|
table.timestamps(true, true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export async function down(knex: Knex): Promise<void> {
|
||||||
|
return knex.schema.dropTable("music");
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
import db from "./db";
|
||||||
|
import type User from "../entities/user";
|
||||||
|
import type Music from "../entities/music";
|
||||||
|
|
||||||
|
export function addSong(link: string, userid: number): Promise<number> {
|
||||||
|
const song: Music = {
|
||||||
|
ytlink: link,
|
||||||
|
userID: userid,
|
||||||
|
};
|
||||||
|
return db()
|
||||||
|
.insert(song)
|
||||||
|
.into("music")
|
||||||
|
.then((v) => {
|
||||||
|
return v[0];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getSongsByUserID(userid: number): Promise<Music[]> {
|
||||||
|
return db()
|
||||||
|
.select("*")
|
||||||
|
.from<Music>("music")
|
||||||
|
.where("userid", userid)
|
||||||
|
.then((v) => {
|
||||||
|
return v;
|
||||||
|
});
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
import db from "./db";
|
||||||
|
import type User from "../entities/user";
|
||||||
|
|
||||||
|
export function getID(userid: number): Promise<User | undefined>{
|
||||||
|
const user = db().select("*").from<User>("users").where("userid", userid).first().then((user) => {
|
||||||
|
return user;
|
||||||
|
});
|
||||||
|
return user;
|
||||||
|
};
|
||||||
|
|
||||||
|
export function createUser(username: string, email: string, website: string, password: string): Promise<number> {
|
||||||
|
return db()
|
||||||
|
.insert({
|
||||||
|
username: username,
|
||||||
|
email: email,
|
||||||
|
website: website,
|
||||||
|
password: password,
|
||||||
|
})
|
||||||
|
.into("users")
|
||||||
|
.then((n) => {
|
||||||
|
return n[0];
|
||||||
|
});
|
||||||
|
};
|
|
@ -0,0 +1,9 @@
|
||||||
|
interface Music {
|
||||||
|
musicID?: number;
|
||||||
|
ytlink: string;
|
||||||
|
userID: number;
|
||||||
|
created_at?: Date,
|
||||||
|
updated_at?: Date,
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Music;
|
|
@ -0,0 +1,11 @@
|
||||||
|
interface User {
|
||||||
|
userid: number,
|
||||||
|
username: string,
|
||||||
|
email: string,
|
||||||
|
password: string,
|
||||||
|
website?: string,
|
||||||
|
created_at: Date,
|
||||||
|
updated_at: Date,
|
||||||
|
};
|
||||||
|
|
||||||
|
export default User;
|
Loading…
Reference in New Issue