initial commit
This commit is contained in:
commit
e59748a285
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
.direnv
|
||||||
|
result
|
1
back/.gitignore
vendored
Normal file
1
back/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/target
|
1826
back/Cargo.lock
generated
Normal file
1826
back/Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
8
back/Cargo.toml
Normal file
8
back/Cargo.toml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
[package]
|
||||||
|
name = "plantback"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
axum = "0.7.5"
|
||||||
|
sqlx = { version = "0.7.4", features = ["runtime-tokio", "sqlite"] }
|
3
back/src/main.rs
Normal file
3
back/src/main.rs
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
fn main() {
|
||||||
|
println!("Hello, world!");
|
||||||
|
}
|
79
flake.lock
Normal file
79
flake.lock
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710146030,
|
||||||
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1719145550,
|
||||||
|
"narHash": "sha256-K0i/coxxTEl30tgt4oALaylQfxqbotTSNb1/+g+mKMQ=",
|
||||||
|
"path": "/nix/store/h5hhc58qp2rcv0f3d9di6569pxrpsi1j-source",
|
||||||
|
"rev": "e4509b3a560c87a8d4cb6f9992b8915abf9e36d8",
|
||||||
|
"type": "path"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"rust-overlay": "rust-overlay"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1721441897,
|
||||||
|
"narHash": "sha256-gYGX9/22tPNeF7dR6bWN5rsrpU4d06GnQNNgZ6ZiXz0=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "b7996075da11a2d441cfbf4e77c2939ce51506fd",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
58
flake.nix
Normal file
58
flake.nix
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
{
|
||||||
|
description = "A plantcare webapp";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
rust-overlay = {
|
||||||
|
url = "github:oxalica/rust-overlay";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, flake-utils, rust-overlay }:
|
||||||
|
flake-utils.lib.eachDefaultSystem (sys:
|
||||||
|
let pkgs = import nixpkgs {
|
||||||
|
system = sys;
|
||||||
|
overlays = [ (import rust-overlay) ];
|
||||||
|
};
|
||||||
|
rust = pkgs.rust-bin.stable.latest.default.override {
|
||||||
|
extensions = [ "rust-src" "rust-analyzer" ];
|
||||||
|
};
|
||||||
|
platform = pkgs.makeRustPlatform {
|
||||||
|
rustc = rust;
|
||||||
|
cargo = rust;
|
||||||
|
};
|
||||||
|
node = pkgs.nodejs_20;
|
||||||
|
deps = [ rust node pkgs.prefetch-npm-deps ];
|
||||||
|
backend = platform.buildRustPackage {
|
||||||
|
name = "plantback";
|
||||||
|
src = ./back;
|
||||||
|
cargoLock = { lockFile = ./front/Cargo.lock; };
|
||||||
|
};
|
||||||
|
frontend = pkgs.buildNpmPackage {
|
||||||
|
name = "plantfront";
|
||||||
|
src = ./front;
|
||||||
|
nodejs = node;
|
||||||
|
npmBuildScript = "build-only";
|
||||||
|
npmDepsHash = "sha256-QYmO99RkdhAN+vNOkBqeXYlfyHGyHfRKVVMIWYfZO1A=";
|
||||||
|
installPhase = ''
|
||||||
|
mv ./dist $out
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
packages.backend = backend;
|
||||||
|
packages.frontend = frontend;
|
||||||
|
packages.default = pkgs.runCommand "plant" {} ''
|
||||||
|
mkdir $out
|
||||||
|
cp -r ${backend} $out/back
|
||||||
|
cp -r ${frontend} $out/front
|
||||||
|
'';
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
shellHook = ''
|
||||||
|
PATH="${builtins.toString ./front/node_modules/.bin}:$PATH"
|
||||||
|
'';
|
||||||
|
packages = deps;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
33
front/.gitignore
vendored
Normal file
33
front/.gitignore
vendored
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
# Logs
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
pnpm-debug.log*
|
||||||
|
lerna-debug.log*
|
||||||
|
|
||||||
|
node_modules
|
||||||
|
.DS_Store
|
||||||
|
dist
|
||||||
|
dist-ssr
|
||||||
|
coverage
|
||||||
|
*.local
|
||||||
|
|
||||||
|
/cypress/videos/
|
||||||
|
/cypress/screenshots/
|
||||||
|
|
||||||
|
# Editor directories and files
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/extensions.json
|
||||||
|
.idea
|
||||||
|
*.suo
|
||||||
|
*.ntvs*
|
||||||
|
*.njsproj
|
||||||
|
*.sln
|
||||||
|
*.sw?
|
||||||
|
|
||||||
|
*.tsbuildinfo
|
||||||
|
result
|
||||||
|
.direnv
|
||||||
|
.vite-ssg-temp/
|
2
front/env.d.ts
vendored
Normal file
2
front/env.d.ts
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
/// <reference types="vite/client" />
|
||||||
|
/// <reference types="vite-plugin-pages/client" />
|
13
front/index.html
Normal file
13
front/index.html
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<link rel="icon" href="/favicon.svg">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>plant</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script type="module" src="/src/main.ts"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
2630
front/package-lock.json
generated
Normal file
2630
front/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
31
front/package.json
Normal file
31
front/package.json
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
"name": "rachel-blog-vue",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "vite",
|
||||||
|
"build": "run-p type-check \"build-only {@}\" --",
|
||||||
|
"preview": "vite preview",
|
||||||
|
"build-only": "export NODE_ENV=production && vite build",
|
||||||
|
"type-check": "vue-tsc --build --force"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"vue": "^3.4.29"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@tsconfig/node20": "^20.1.4",
|
||||||
|
"@types/node": "^20.14.5",
|
||||||
|
"@vitejs/plugin-vue": "^5.0.5",
|
||||||
|
"@vue/language-server": "^2.0.26",
|
||||||
|
"@vue/tsconfig": "^0.5.1",
|
||||||
|
"@vue/typescript-plugin": "^2.0.26",
|
||||||
|
"npm-run-all2": "^6.2.0",
|
||||||
|
"sass": "^1.77.8",
|
||||||
|
"typescript": "~5.4.0",
|
||||||
|
"typescript-language-server": "^4.3.3",
|
||||||
|
"vite": "^5.3.1",
|
||||||
|
"vite-plugin-pages": "^0.32.3",
|
||||||
|
"vue-tsc": "^2.0.21"
|
||||||
|
}
|
||||||
|
}
|
6
front/public/favicon.svg
Normal file
6
front/public/favicon.svg
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="2400" height="2400" viewBox="0 0 2400 2400">
|
||||||
|
<path fill-rule="evenodd" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 600 600 L 1800 600 L 1800 1800 L 600 1800 L 600 600 "/>
|
||||||
|
<rect x="-240" y="-240" width="2880" height="2880" fill="rgb(100%, 100%, 100%)" fill-opacity="1"/>
|
||||||
|
<path fill-rule="evenodd" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 2280 341.921875 C 2191.390625 626.808594 2108.378906 771.210938 2108.378906 771.210938 C 2130.378906 845.761719 2141.101562 1132.371094 2051.601562 1374.140625 C 1822.730469 1992.402344 1081.769531 2383.023438 120 1840.238281 C 395.21875 1782.148438 573.839844 1235.878906 824.414062 854.128906 C 924.964844 700.910156 1148.550781 432.238281 1509.320312 459.328125 C 1676.089844 468.769531 1838.890625 531.390625 1866.441406 599.421875 C 1853.949219 726.980469 1446.390625 1447.121094 939.414062 1638.539062 C 1762.179688 1377.660156 2085.019531 497.910156 2120.738281 301.96875 Z M 2280 341.921875 L 2280 341.921875 "/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
BIN
front/public/fonts/SAX2.ttf
Normal file
BIN
front/public/fonts/SAX2.ttf
Normal file
Binary file not shown.
16
front/src/App.vue
Normal file
16
front/src/App.vue
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<script setup lang="ts">
|
||||||
|
import TheHeader from './components/TheHeader.vue'
|
||||||
|
import TheFooter from './components/TheFooter.vue'
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<header>
|
||||||
|
<TheHeader />
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<RouterView />
|
||||||
|
</main>
|
||||||
|
<footer>
|
||||||
|
<TheFooter />
|
||||||
|
</footer>
|
||||||
|
</template>
|
4
front/src/components/TheFooter.vue
Normal file
4
front/src/components/TheFooter.vue
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<template>
|
||||||
|
<hr>
|
||||||
|
<a href="https://www.vecteezy.com/free-vector/leaf">Leaf Vectors by Vecteezy</a>
|
||||||
|
</template>
|
3
front/src/components/TheHeader.vue
Normal file
3
front/src/components/TheHeader.vue
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<template>
|
||||||
|
<span>header</span>
|
||||||
|
</template>
|
4
front/src/css/main.scss
Normal file
4
front/src/css/main.scss
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: "SAX2";
|
||||||
|
src: url(/fonts/SAX2.ttf);
|
||||||
|
}
|
13
front/src/main.ts
Normal file
13
front/src/main.ts
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
import './css/main.scss'
|
||||||
|
|
||||||
|
import { createApp } from 'vue'
|
||||||
|
import routes from '~pages'
|
||||||
|
|
||||||
|
import App from './App.vue'
|
||||||
|
|
||||||
|
const app = createApp(
|
||||||
|
App,
|
||||||
|
{ routes },
|
||||||
|
)
|
||||||
|
|
||||||
|
app.mount('#app')
|
3
front/src/pages/index.vue
Normal file
3
front/src/pages/index.vue
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<template>
|
||||||
|
<h1>hii world !! ^-^</h1>
|
||||||
|
</template>
|
15
front/tsconfig.app.json
Normal file
15
front/tsconfig.app.json
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"extends": "@vue/tsconfig/tsconfig.dom.json",
|
||||||
|
"include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
|
||||||
|
"exclude": ["src/**/__tests__/*"],
|
||||||
|
"compilerOptions": {
|
||||||
|
"composite": true,
|
||||||
|
"strict": true,
|
||||||
|
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
||||||
|
|
||||||
|
"baseUrl": ".",
|
||||||
|
"paths": {
|
||||||
|
"@/*": ["./src/*"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
11
front/tsconfig.json
Normal file
11
front/tsconfig.json
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"files": [],
|
||||||
|
"references": [
|
||||||
|
{
|
||||||
|
"path": "./tsconfig.node.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "./tsconfig.app.json"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
19
front/tsconfig.node.json
Normal file
19
front/tsconfig.node.json
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"extends": "@tsconfig/node20/tsconfig.json",
|
||||||
|
"include": [
|
||||||
|
"vite.config.*",
|
||||||
|
"vitest.config.*",
|
||||||
|
"cypress.config.*",
|
||||||
|
"nightwatch.conf.*",
|
||||||
|
"playwright.config.*"
|
||||||
|
],
|
||||||
|
"compilerOptions": {
|
||||||
|
"composite": true,
|
||||||
|
"noEmit": true,
|
||||||
|
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
||||||
|
|
||||||
|
"module": "ESNext",
|
||||||
|
"moduleResolution": "Bundler",
|
||||||
|
"types": ["node"]
|
||||||
|
}
|
||||||
|
}
|
21
front/vite.config.ts
Normal file
21
front/vite.config.ts
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
import { fileURLToPath, URL } from 'node:url'
|
||||||
|
|
||||||
|
import Vue from '@vitejs/plugin-vue'
|
||||||
|
import Pages from 'vite-plugin-pages'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
plugins: [
|
||||||
|
Vue(),
|
||||||
|
Pages(),
|
||||||
|
],
|
||||||
|
resolve: {
|
||||||
|
alias: {
|
||||||
|
'@': fileURLToPath(new URL('./src', import.meta.url))
|
||||||
|
}
|
||||||
|
},
|
||||||
|
esbuild: {
|
||||||
|
supported: {
|
||||||
|
'top-level-await': true
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user