diff --git a/app/(customer)/dashboard/projects/[projectId]/page.tsx b/app/(customer)/dashboard/projects/[projectId]/page.tsx
new file mode 100644
index 00000000..047ea6b8
--- /dev/null
+++ b/app/(customer)/dashboard/projects/[projectId]/page.tsx
@@ -0,0 +1,51 @@
+import {PageParams} from "@/types/next";
+import {prisma} from "@/prisma";
+import {AgentCard} from "@/components/wrappers/Agent/AgentCard/AgentCard";
+import {CardsWithPagination} from "@/components/wrappers/cards-with-pagination";
+import {Button} from "@/components/ui/button";
+import Link from 'next/link'
+import {Page, PageActions, PageContent, PageHeader, PageTitle} from "@/features/layout/page";
+
+export default async function RoutePage(props: PageParams<{}>) {
+
+ const projects = await prisma.project.findMany({})
+
+ return (
+
+
+
+ Projects
+
+ {projects.length > 0 && (
+
+
+
+
+
+ )}
+
+
+
+
+
+ {projects.length > 0 ?
+
+ :
+
+ Create new Project
+
+
+ }
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/app/(customer)/dashboard/projects/new/page.tsx b/app/(customer)/dashboard/projects/new/page.tsx
new file mode 100644
index 00000000..81243af5
--- /dev/null
+++ b/app/(customer)/dashboard/projects/new/page.tsx
@@ -0,0 +1,19 @@
+import {PageParams} from "@/types/next";
+import {Page, PageContent, PageHeader, PageTitle} from "@/features/layout/page";
+
+
+export default async function RoutePage(props: PageParams<{}>) {
+
+ return (
+
+
+
+ Create new project
+
+
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/prisma/schema.prisma b/prisma/schema.prisma
index 8056e261..7d341386 100644
--- a/prisma/schema.prisma
+++ b/prisma/schema.prisma
@@ -77,6 +77,31 @@ enum Role {
admin
}
+model Organization {
+ id String @id @default(cuid())
+ slug String @unique
+ name String
+ createdAt DateTime @default(now()) @map("created_at")
+
+ projects Project[]
+
+ @@map("organizations")
+}
+
+model Project {
+ id String @id @default(cuid())
+ slug String @unique
+ name String
+ createdAt DateTime @default(now()) @map("created_at")
+
+ organizationId String @map("organization_id")
+ organization Organization @relation(fields: [organizationId], references: [id])
+
+ databases Database[]
+
+ @@map("projects")
+}
+
model Agent {
id String @id @default(cuid())
slug String @unique
@@ -112,6 +137,9 @@ model Database {
backups Backup[]
restaurations Restauration[]
+ projectId String? @map("project_id")
+ project Project? @relation(fields: [projectId], references: [id])
+
@@map("databases")
}