Inicjalna wersja systemu zarządzania rezerwacjami (RMS)
SPA zbudowane w React 19 + Vite 8 z pełnym zestawem funkcjonalności: autentykacja z 2FA, kreator rezerwacji, panel admina, analityka, GraphQL (Apollo Client + SchemaLink), React Query, Storybook, testy jednostkowe (Vitest + RTL) i e2e (Playwright).
This commit is contained in:
124
db.json
Normal file
124
db.json
Normal file
@@ -0,0 +1,124 @@
|
||||
{
|
||||
"users": [
|
||||
{
|
||||
"id": "u1",
|
||||
"email": "admin@reservations.dev",
|
||||
"password": "Admin1234!",
|
||||
"role": "admin",
|
||||
"avatarUrl": "https://i.pravatar.cc/150?u=admin"
|
||||
},
|
||||
{
|
||||
"id": "u2",
|
||||
"email": "anna.kowalski@example.com",
|
||||
"password": "Client1234!",
|
||||
"role": "client",
|
||||
"avatarUrl": "https://i.pravatar.cc/150?u=anna"
|
||||
},
|
||||
{
|
||||
"id": "u3",
|
||||
"email": "marek.nowak@example.com",
|
||||
"password": "Client1234!",
|
||||
"role": "client",
|
||||
"avatarUrl": "https://i.pravatar.cc/150?u=marek"
|
||||
},
|
||||
{
|
||||
"id": "u4",
|
||||
"email": "julia.wisniewska@example.com",
|
||||
"password": "Client1234!",
|
||||
"role": "client",
|
||||
"avatarUrl": "https://i.pravatar.cc/150?u=julia"
|
||||
}
|
||||
],
|
||||
"services": [
|
||||
{
|
||||
"id": "s1",
|
||||
"name": "Initial Consultation",
|
||||
"description": "A 30-minute introductory session to discuss your needs and goals.",
|
||||
"price": 50,
|
||||
"duration": 30
|
||||
},
|
||||
{
|
||||
"id": "s2",
|
||||
"name": "Standard Session",
|
||||
"description": "A full 60-minute service session tailored to your requirements.",
|
||||
"price": 120,
|
||||
"duration": 60
|
||||
},
|
||||
{
|
||||
"id": "s3",
|
||||
"name": "Premium Package",
|
||||
"description": "An extended 90-minute premium session with a detailed follow-up report.",
|
||||
"price": 200,
|
||||
"duration": 90
|
||||
},
|
||||
{
|
||||
"id": "s4",
|
||||
"name": "Express Appointment",
|
||||
"description": "A focused 15-minute quick-turnaround appointment for urgent matters.",
|
||||
"price": 30,
|
||||
"duration": 15
|
||||
}
|
||||
],
|
||||
"reservations": [
|
||||
{
|
||||
"id": "r1",
|
||||
"userId": "u2",
|
||||
"serviceId": "s1",
|
||||
"date": "2026-06-25",
|
||||
"time": "09:00",
|
||||
"status": "cancelled"
|
||||
},
|
||||
{
|
||||
"id": "r2",
|
||||
"userId": "u3",
|
||||
"serviceId": "s2",
|
||||
"date": "2026-06-26",
|
||||
"time": "11:30",
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"id": "r3",
|
||||
"userId": "u4",
|
||||
"serviceId": "s3",
|
||||
"date": "2026-06-27",
|
||||
"time": "14:00",
|
||||
"status": "confirmed"
|
||||
},
|
||||
{
|
||||
"id": "r4",
|
||||
"userId": "u2",
|
||||
"serviceId": "s4",
|
||||
"date": "2026-06-20",
|
||||
"time": "10:00",
|
||||
"status": "cancelled"
|
||||
},
|
||||
{
|
||||
"id": "r5",
|
||||
"userId": "u3",
|
||||
"serviceId": "s3",
|
||||
"date": "2026-07-01",
|
||||
"time": "13:00",
|
||||
"status": "confirmed"
|
||||
},
|
||||
{
|
||||
"id": "r6",
|
||||
"userId": "u4",
|
||||
"serviceId": "s2",
|
||||
"date": "2026-07-03",
|
||||
"time": "16:00",
|
||||
"status": "confirmed"
|
||||
},
|
||||
{
|
||||
"userId": "u2",
|
||||
"serviceId": "s1",
|
||||
"date": "2026-09-01",
|
||||
"time": "14:30",
|
||||
"specialRequirements": null,
|
||||
"status": "pending",
|
||||
"depositPaid": 25,
|
||||
"transactionId": "TXN-USDR1S5D",
|
||||
"id": "-4aG8VQUVhM"
|
||||
}
|
||||
],
|
||||
"$schema": "./node_modules/json-server/schema.json"
|
||||
}
|
||||
Reference in New Issue
Block a user