|
|
# 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** 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. |
|
|
|
|
|
> ⚠️ This is a work in progress! Contributions welcome. |
|
|
|
|
|
--- |
|
|
|
|
|
## 🚀 Features |
|
|
|
|
|
- Event information & schedule |
|
|
- Stream |
|
|
- Responsive dark-themed UI |
|
|
- Built with Next.js, styled with Tailwind (if applicable), powered by Bun |
|
|
|
|
|
--- |
|
|
|
|
|
## 📦 Tech Stack |
|
|
|
|
|
- [Next.js](https://nextjs.org/) |
|
|
- [Bun](https://bun.sh/) |
|
|
- [TypeScript](https://www.typescriptlang.org/) |
|
|
- [React](https://reactjs.org/) |
|
|
- [Tailwind CSS](https://tailwindcss.com/) *(if used)* |
|
|
|
|
|
--- |
|
|
|
|
|
## 🛠️ Setup Instructions |
|
|
|
|
|
📖 See [`docs/SETUP.md`](./docs/SETUP.md) for a full setup guide on: |
|
|
|
|
|
- ✅ Windows (native) |
|
|
- 🐧 Windows with WSL |
|
|
- 🐧 Linux (Ubuntu, Arch, Fedora, etc.) |
|
|
|
|
|
--- |
|
|
|
|
|
## 🧪 Scripts |
|
|
|
|
|
```bash |
|
|
bun dev # Run development server |
|
|
bun run build # Build for production |
|
|
bun start # Start production server |
|
|
|
|
|
bun test # Run tests (if configured) |
|
|
bun run lint # Run linter (if configured)
|
|
|
|