Svelte 5
Berikut adalah langkah-langkah untuk membuat setup proyek membership menggunakan Svelte 5, SvelteKit, Prisma, Lucia, Fastify, dan MySQL:
1. Setup Proyek SvelteKit
Inisialisasi Proyek Baru
npm create svelte@latest my-membership-app cd my-membership-app npm install
Pilih opsi Skeleton Project saat setup dan tambahkan
TypeScript
jika diperlukan.
2. Install Dependencies
Tambahkan paket yang dibutuhkan:
npm install @lucia-auth/sveltekit @prisma/client mysql2 fastify @fastify/express
npm install -D prisma
3. Konfigurasi Prisma
Inisialisasi Prisma
npx prisma init
File
prisma/schema.prisma
akan dibuat.Atur Skema Prisma
Di dalam fileprisma/schema.prisma
, tambahkan konfigurasi untuk MySQL:datasource db { provider = "mysql" url = env("DATABASE_URL") } generator client { provider = "prisma-client-js" } model User { id String @id @default(cuid()) username String @unique hashedPassword String createdAt DateTime @default(now()) } model Session { id String @id @default(cuid()) userId String expires DateTime user User @relation(fields: [userId], references: [id]) }
Set Environment Variable
Tambahkan URL MySQL Anda di file.env
:DATABASE_URL="mysql://username:password@localhost:3306/membership_db"
Generate Client
Jalankan perintah:npx prisma db push
4. Konfigurasi Lucia
Setup Lucia Auth
Buat filesrc/lib/server/lucia.ts
:import lucia from "lucia-auth"; import { sveltekit } from "lucia-auth/middleware"; import prisma from "@prisma/client"; const prismaClient = new prisma.PrismaClient(); export const auth = lucia({ adapter: { user: prismaClient.user, session: prismaClient.session, }, env: "DEV", middleware: sveltekit() }); export type Auth = typeof auth;
Tambahkan Hooks
Buat filesrc/hooks.server.ts
:import { auth } from "$lib/server/lucia"; import type { Handle } from "@sveltejs/kit"; export const handle: Handle = async ({ event, resolve }) => { event.locals.auth = auth.handleRequest(event); return await resolve(event); };
5. Setup Fastify
Tambahkan Plugin Fastify
Buat filesrc/lib/server/fastify.ts
:import Fastify from "fastify"; const fastify = Fastify({ logger: true }); export default fastify;
Integrasi dengan SvelteKit
Buat file serversrc/server.ts
:import { createServer } from "http"; import fastify from "$lib/server/fastify"; import { handler } from "./build"; fastify.register(require('@fastify/express')); fastify.use(handler); fastify.listen(3000, (err) => { if (err) { console.error(err); process.exit(1); } console.log("Server running on http://localhost:3000"); });
Jalankan Build SvelteKit
Tambahkan script kepackage.json
:"scripts": { "build": "vite build", "start": "node src/server.js" }
Jalankan Server
npm run build npm run start
6. Setup Login dan Registrasi
Buat Route untuk Registrasi (
src/routes/register/+server.ts
)import { auth } from "$lib/server/lucia"; import { json } from "@sveltejs/kit"; export async function POST({ request }) { const { username, password } = await request.json(); const user = await auth.createUser({ primaryKey: { providerId: "username", providerUserId: username, password, }, attributes: { username, }, }); return json({ user }); }
Buat Route untuk Login (
src/routes/login/+server.ts
)import { auth } from "$lib/server/lucia"; import { json } from "@sveltejs/kit"; export async function POST({ request }) { const { username, password } = await request.json(); const session = await auth.authenticateUser("username", username, password); return json({ session }); }
7. Testing
- Jalankan MySQL:
mysql -u root -p CREATE DATABASE membership_db;
- Jalankan server:
npm run dev
- Akses aplikasi di http://localhost:3000.
Sistem ini sudah mencakup setup authentication, database, dan backend server menggunakan Fastify. Silakan kustomisasi sesuai kebutuhan proyek membership Anda!
Berikut adalah langkah-langkah untuk menjalankan MySQL di Windows 11:
1. Install MySQL di Windows 11
Jika Anda belum menginstal MySQL, lakukan langkah berikut:
- Unduh MySQL Installer:
Unduh dari situs resmi MySQL. - Jalankan Installer:
- Pilih Custom Installation atau Developer Default (untuk semua tools MySQL).
- Pilih MySQL Server versi yang diinginkan, MySQL Workbench (opsional), dan MySQL Shell.
- Konfigurasikan Server:
- Atur jenis setup: standalone atau server/database saja.
- Tentukan port (default: 3306).
- Atur root password dan (opsional) tambahkan pengguna baru.
- Selesaikan Instalasi.
2. Menjalankan MySQL Server
Menggunakan MySQL Installer:
- Buka MySQL Installer dari menu Start.
- Pilih MySQL Server dan klik Start.
Menggunakan Command Prompt atau Terminal:
- Tekan
Win + R
, lalu ketikcmd
dan tekan Enter. - Jalankan perintah berikut untuk memulai MySQL Server:
net start mysql
- Jika ingin menghentikan server:
net stop mysql
Menggunakan MySQL Workbench:
- Buka MySQL Workbench.
- Buat koneksi baru dengan localhost pada port 3306.
- Login menggunakan username dan password root.
3. Akses MySQL dari Command Line
- Buka Command Prompt (cmd).
- Masukkan perintah:
mysql -u root -p
- Ketikkan password root yang Anda atur selama instalasi.
4. Menambahkan MySQL ke Path (Opsional)
Agar dapat menggunakan perintah mysql
langsung dari Command Prompt:
- Tambahkan folder MySQL bin ke Path:
- Cari Edit Environment Variables di Windows.
- Pilih Path → Klik Edit → Tambahkan lokasi folder
bin
MySQL, misalnya:C:\Program Files\MySQL\MySQL Server 8.0\bin
- Restart Command Prompt untuk menerapkan perubahan.
5. Testing MySQL
Setelah server berjalan:
- Jalankan perintah:
mysql -u root -p
- Jika berhasil, Anda akan masuk ke shell MySQL:
mysql>
- Coba buat database untuk testing:
CREATE DATABASE test_db; SHOW DATABASES;
6. Troubleshooting
- Port Konflik (3306):
Pastikan port 3306 tidak digunakan aplikasi lain. Anda dapat mengubah port di file konfigurasimy.ini
ataumy.cnf
. - Service Tidak Berjalan:
Pastikan layanan MySQL aktif di Services Manager:- Tekan
Win + R
, ketikservices.msc
, tekan Enter. - Cari MySQL → Klik kanan → Start.
- Tekan
Dengan langkah ini, Anda siap menjalankan MySQL di Windows 11! 🚀