TimeWeaver

Screenshot of browser displaying Tech with Seth Customer Relations Manager web application

Description

TimeWeaver is a tool to help manage events across multiple timelines. Events that are approaching the current time are intensified with borders and colors. Countdown timers inform users how much time they have until the next item on the agenda.

Features

  • View timelines collection
  • View timeline of events
  • Create timelines (Coming soon)
  • Create timeline events (Coming soon)

Schema


generator client {
    provider = "prisma-client-js"
}

datasource db {
    provider = "mongodb"
    url      = env("DATABASE_URL")
}

model User {
    id             String          @id @default(auto()) @map("_id") @db.ObjectId
    createdAt      DateTime        @default(now())
    updatedAt      DateTime        @updatedAt
    email          String          @unique
    password       String
    profile        Profile?
    timelines      Timeline[]
    timelineEvents TimelineEvent[]
}

model Profile {
    id        String   @id @default(auto()) @map("_id") @db.ObjectId
    createdAt DateTime @default(now())
    updatedAt DateTime @updatedAt
    firstName String?
    lastName  String?
    bio       String?
    user      User     @relation(fields: [userId], references: [id])
    userId    String   @unique @db.ObjectId
}

model Timeline {
    id          String          @id @default(auto()) @map("_id") @db.ObjectId
    createdAt   DateTime        @default(now())
    createdBy   User            @relation(fields: [createdById], references: [id])
    createdById String          @db.ObjectId
    updatedAt   DateTime        @updatedAt
    slug        String          @unique
    name        String
    description String
    events      TimelineEvent[] @relation(fields: [eventIds], references: [id])
    eventIds    String[]        @db.ObjectId
    start       DateTime
    end         DateTime
}

model TimelineEvent {
    id          String     @id @default(auto()) @map("_id") @db.ObjectId
    createdAt   DateTime   @default(now())
    createdBy   User       @relation(fields: [createdById], references: [id])
    createdById String     @db.ObjectId
    updatedAt   DateTime   @updatedAt
    name        String
    description String
    slug        String     @unique
    timelines   Timeline[] @relation(fields: [timelineIds], references: [id])
    timelineIds String[]   @db.ObjectId
    start       DateTime
    end         DateTime
}
            

Shareables