Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bojkoj/ts-vanilla-via-projekt-b
https://github.com/bojkoj/ts-vanilla-via-projekt-b
axios drizzle-orm html nodejs pnpm sqlite3 tailwindcss typescript vite
Last synced: 29 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/bojkoj/ts-vanilla-via-projekt-b
- Owner: BojkoJ
- Created: 2024-10-21T09:15:27.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-12-01T01:22:17.000Z (about 1 month ago)
- Last Synced: 2024-12-01T02:23:24.224Z (about 1 month ago)
- Topics: axios, drizzle-orm, html, nodejs, pnpm, sqlite3, tailwindcss, typescript, vite
- Language: HTML
- Homepage:
- Size: 573 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Projekt VIA - vanilla HTML & TypeScript projekt
## Požadavky:
- Naimplementovat kopii webu [Soilboy](https://www.soilboy.sg/)
- Nepoužívat žádný webový framework jako Next.js, React, Svelte apod.
- Povoleno: CSS frameworky, JS knihovny (s výjimkou React), TypeScript## Knihovny a dependencies
- **nodemon** - knihovna pro automatický refresh při změnách
- **tailwindCSS** - CSS framework
- **zod** - knihovna pro validaci dat
- **axios** - knihovna pro HTTP požadavky (lepší než fetchAPI)
- **drizzle** - užitečné TypeScript orientované ORM
- **better-sqlite3** - lokální databáze v souboru `./local.db`
- **node.js** - JavaScript runtime (důležité používat verzi 23.0)
- **typescript** - lepší JavaScript s typovou kontrolou
- **vite** - nástroj pro vývoj a scaffold TypeScript aplikací
- **pnpm** - rychlý správce balíčků pro efektivní instalace
- **passport.js** - autentizační middleware knihovna pro Node.js
- **express-session** - middleware knihovna pro správu session pomocí cookies v runtimu Node.js## Struktura projektu
- `./src/pages/` obsahuje HTML stránky/komponenty (např. `navbar.html`).
- `./src/` obsahuje všechny TypeScript soubory, které se starají o logiku aplikace (např. `register.ts`, `login.ts`).
- `./local.db` obsahuje SQLite databázi s uživatelskými daty.
- `./drizzle` obashuje migrace ORM Drizzle
- `./src/server` obsahuje soubor se serverovou backend logikou
- `./src/db` obsahuje soubor se schématem databáze pro ORM
- `./src/types` obsahuje soubory s typovou definicí pro kontrolu knihovnou Zod## Jak spustit?
1. `pnpm install` - Nainstalovat dependencies a knihovny
2. `pnpm add -g node-gyp` - Nainstalovat node-gyp pro better-sqlite3
3. **Poznámka**: Není potřeba spouštět migrace databáze, `./local.db` již obsahuje připravená data.
4. `pnpm dev` - Spustit projekt
5. Projekt běží na [localhost:5173](http://localhost:5173)## Autentifikace
Projekt využívá knihovnu **passport.js** a knihovnu **express-session** pro správu autentifikace uživatelů.
- Uživatelé se mohou přihlašovat/registrovat pomocí tlačítka Login v navigaci.
- Sessiony jsou spravovány pomocí cookies, které se automaticky vyprší po 24 hodinách.## Další informace
- **Node.js verze**: Tento projekt vyžaduje Node.js verzi 23.0. Pokud ji nemáte nainstalovanou, můžete si ji stáhnout [zde](https://nodejs.org/en/download/prebuilt-installer).
- **Databáze**: Databáze `./local.db` je součástí projektu a obsahuje všechny potřebné tabulky a data. Není potřeba vytvářet nové migrace.