mirror of
https://github.com/Lapikud/tipilan.git
synced 2026-03-23 13:24:21 +00:00
Update nextjs
This commit is contained in:
130
README.md
130
README.md
@@ -1,3 +1,133 @@
|
|||||||
|
# Tipilan
|
||||||
|
|
||||||
|
> Tipilan — a Next.js (App Router) website using TypeScript, Tailwind, Drizzle ORM and i18n (English & Estonian).
|
||||||
|
|
||||||
|
This repository contains the website front-end and database schema/migrations for the Tipilan project.
|
||||||
|
|
||||||
|
## Tech stack
|
||||||
|
|
||||||
|
- Next.js 15 (App Router)
|
||||||
|
- React 19 + TypeScript
|
||||||
|
- Tailwind CSS
|
||||||
|
- Drizzle ORM (drizzle-kit) for database schema & migrations
|
||||||
|
- next-intl for internationalization (English / Estonian)
|
||||||
|
- pnpm as package manager
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- Node.js >= 22.0.0 (see `package.json` engines)
|
||||||
|
- pnpm (recommended; repo contains `pnpm-lock.yaml`)
|
||||||
|
|
||||||
|
Install pnpm if you don't have it:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install -g pnpm
|
||||||
|
```
|
||||||
|
|
||||||
|
## Quick start
|
||||||
|
|
||||||
|
1. Clone the repo
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone <repo-url>
|
||||||
|
cd tipilan
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Install dependencies
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm install
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Run development server
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm dev
|
||||||
|
```
|
||||||
|
|
||||||
|
The app uses Next's turbopack in development (`next dev --turbopack`). Open http://localhost:3000 by default.
|
||||||
|
|
||||||
|
## Available scripts
|
||||||
|
|
||||||
|
These scripts are defined in `package.json` and are the recommended entry points:
|
||||||
|
|
||||||
|
- `pnpm dev` — start development server (uses turbopack)
|
||||||
|
- `pnpm build` — production build
|
||||||
|
- `pnpm start` — run production server after build
|
||||||
|
- `pnpm lint` — run ESLint
|
||||||
|
- `pnpm drizzle:generate` — generate Drizzle migration artifacts for SQLite
|
||||||
|
- `pnpm drizzle:push` — push migrations to SQLite database
|
||||||
|
- `pnpm drizzle:studio` — start Drizzle Studio
|
||||||
|
|
||||||
|
Run them with `pnpm <script>` (e.g. `pnpm build`).
|
||||||
|
|
||||||
|
## Database & migrations (Drizzle)
|
||||||
|
|
||||||
|
This project uses `drizzle-kit` for schema generation and migrations. Migrations present in the `migrations/` directory.
|
||||||
|
|
||||||
|
- Generate/refresh schema files (SQLite):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm drizzle:generate
|
||||||
|
```
|
||||||
|
|
||||||
|
- Push migrations to the target SQLite DB:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm drizzle:push
|
||||||
|
```
|
||||||
|
|
||||||
|
- Open Drizzle Studio:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm drizzle:studio
|
||||||
|
```
|
||||||
|
|
||||||
|
If you are using a different database in production, update `drizzle.config.ts` appropriately.
|
||||||
|
|
||||||
|
## Internationalization
|
||||||
|
|
||||||
|
The app uses `next-intl` and has translations in the `translations/` and `src/data/rules/` folders for English and Estonian.
|
||||||
|
|
||||||
|
## Project layout (highlight)
|
||||||
|
|
||||||
|
- `app/` — Next.js App Router pages and layouts
|
||||||
|
- `components/` — React components used across the app
|
||||||
|
- `db/` — Drizzle config and schema definitions
|
||||||
|
- `migrations/` — SQL migrations
|
||||||
|
- `src/lib/` — helper libraries and utils
|
||||||
|
- `translations/` — top-level translation JSON files
|
||||||
|
|
||||||
|
Explore the `src` tree for more feature-specific code (rules, timetable, sponsors, etc.).
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Small PRs with a clear description are welcome. When contributing:
|
||||||
|
|
||||||
|
- Keep changes focused and add tests when appropriate.
|
||||||
|
- Run `pnpm lint` and make sure the dev server runs locally.
|
||||||
|
- If modifying schema, add or update migrations under `migrations/` and test `drizzle:push`/`drizzle:generate` flows.
|
||||||
|
|
||||||
|
## Troubleshooting & tips
|
||||||
|
|
||||||
|
- If you see an engine/node version mismatch, ensure Node >= 22.0.0 is active.
|
||||||
|
- If you need to reset the local SQLite DB used for development, remove the file your `drizzle.config.ts` points to and re-run migrations.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
No license file is included in this repository. If you intend to publish or share, add a `LICENSE` file (e.g., MIT) and update this section.
|
||||||
|
|
||||||
|
## Contact / Maintainers
|
||||||
|
|
||||||
|
See repository metadata or the `meta/` folder for snapshots and notes. Open an issue or a PR with questions or fixes.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
If you'd like, I can also:
|
||||||
|
|
||||||
|
- add a short `CONTRIBUTING.md` with a checklist for PRs,
|
||||||
|
- add a `make` / `pnpm` script to simplify local DB reset,
|
||||||
|
- or tailor the README for end users vs developers (shorter/longer).
|
||||||
# 🎮 TIPILAN
|
# 🎮 TIPILAN
|
||||||
|
|
||||||
**TIPILAN** is the official web platform for the TipiLAN LAN event — built using [Next.js](https://nextjs.org) and powered by the lightning-fast [Bun](https://bun.sh) runtime.
|
**TIPILAN** is the official web platform for the TipiLAN LAN event — built using [Next.js](https://nextjs.org) and powered by the lightning-fast [Bun](https://bun.sh) runtime.
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
"drizzle-orm": "^0.44.5",
|
"drizzle-orm": "^0.44.5",
|
||||||
"lucide-react": "^0.522.0",
|
"lucide-react": "^0.522.0",
|
||||||
"material-symbols": "^0.31.9",
|
"material-symbols": "^0.31.9",
|
||||||
"next": "15.3.0",
|
"next": "15.3.6",
|
||||||
"next-intl": "^4.3.9",
|
"next-intl": "^4.3.9",
|
||||||
"next-themes": "^0.4.6",
|
"next-themes": "^0.4.6",
|
||||||
"react": "^19.1.1",
|
"react": "^19.1.1",
|
||||||
|
|||||||
Reference in New Issue
Block a user