Skip to content

LabQii/journal

Repository files navigation

CNC Journal

A private journaling platform for two

Live Next.js Supabase License


About

CNC Journal is a web-based private journaling platform designed for shared memories and communication between two users. Built around a role-based system — King and Queen — where each role has its own level of access and interaction.


Stack

Layer Technology
Framework Next.js (App Router)
Styling Tailwind CSS
Database Supabase (PostgreSQL)
ORM Prisma
Storage Cloudinary
Hosting Vercel

Features

Home

Displays journal books configured by the King. Each book has accessibility settings — content can be set as public or Queen-only.

Notes

Write short meaningful messages to each other — motivations, reminders, or anything worth remembering.

Books

A collaborative journaling space where both users can write and contribute stories together.

Gallery

An archive to store photos and shared memories — a visual diary of moments.

Role System

Permission King Queen
Create content Yes Yes
Edit own content Yes Yes
Delete content Yes Limited
Configure book access Yes No
Monitor activity Yes No

Activity Monitor

The King can see the Queen's real-time login status and send short greeting messages that appear as notifications when she is online — making the experience more personal and interactive.


Getting Started

1. Clone & install

git clone https://github.com/username/cnc-journal.git
cd cnc-journal
npm install

2. Setup environment

cp .env.example .env.local
# Supabase
DATABASE_URL=postgresql://...
DIRECT_URL=postgresql://...
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=

# Cloudinary
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=

# Auth
NEXTAUTH_SECRET=
NEXTAUTH_URL=http://localhost:3000

3. Setup database

npx prisma migrate dev
npx prisma generate

4. Run dev server

npm run dev

Open http://localhost:3000


Project Structure

cnc-journal/
├── app/
│   ├── (auth)/               # Login & register
│   ├── home/                 # Journal books
│   ├── notes/                # Short messages
│   ├── books/                # Collaborative journal
│   ├── gallery/              # Photo archive
│   └── activity/             # Real-time monitor (King only)
├── components/               # Reusable UI components
├── lib/                      # Utilities & API helpers
├── prisma/
│   └── schema.prisma
└── public/

Scripts

npm run dev          # Development server
npm run build        # Production build
npm run start        # Start production server
npm run lint         # Lint check
npx prisma studio    # Database GUI

Roles

Role Description
King Full access — manage all content, configure books, monitor activity
Queen Standard access — read, write, limited edit & delete

Access is assigned at registration. Only one King and one Queen account are supported per instance.


Built with care  ·  cnc-journal.vercel.app

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages