Skip to content

ReviewBoard is a full-stack web application built to streamline the submission, review, and approval process for business items.

License

Notifications You must be signed in to change notification settings

merteldem1r/ReviewBoard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ReviewBoard - Test Case

Next.js React TypeScript Tailwind CSS Prisma PostgreSQL

ReviewBoard is a full-stack web application built to streamline the submission, review, and approval process for business items. The platform features an intelligent risk scoring system that automatically evaluates submissions based on configurable rules, helping prioritize high-risk items for faster review.

Author: Mert Eldemir
This project is licensed under the MIT License - see the LICENSE file for details.

image

Technology Stack

Frontend: Next.js 15.5.5, React 19, TypeScript, Tailwind CSS
Backend: Next.js API Routes (REST), NextAuth.js (JWT Authentication)
Database: PostgreSQL with Prisma ORM
Infrastructure: Vercel (Deployment), Supabase (Database Hosting)
Caching: Redis (Upstash)
Automation: Cron-job.org (Scheduled Tasks)

Overview

ReviewBoard is an enterprise-grade review management platform designed to streamline item submission, review, and approval workflows.

APP Preview

User Perspective

Dashboard

image

Items

rb-my-items rb-new-item rb-new-item-load

Reviewer Perspective

Dashboard

image

Item Management

image

Users

rb-rev-users

Admin Perspective

Dashboard

image

Tag Management

image

Rule Management

image

New Rule

image

Audit Logs

image

Setup & Installation

Prerequisites

  • Node.js 18+ and npm
  • PostgreSQL database
  • SMTP server for email verification
  • GitHub OAuth application (optional)

Environment Variables

Create a .env file with the following variables:

# Database
DATABASE_URL="postgresql://user:password@host:port/database?pgbouncer=true"
DIRECT_URL="postgresql://user:password@host:port/database"

# NextAuth
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-secret-key

# Redis (Upstash)
UPSTASH_REDIS_REST_URL=your-upstash-redis-rest-url
UPSTASH_REDIS_REST_TOKEN=your-upstash-redis-rest-token

# OAuth (Optional)
GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET="your-github-client-secret"

# Email (SMTP)
EMAIL_SERVER=smtp://[your-gmail].com:[your-google-app-password]@smtp.gmail.com:587
EMAIL_FROM=your-gmail

# Cron Job
CRON_SECRET=your-cron-secret-key

Installation Steps

  1. Clone the repository

    git clone <repository-url>
    cd reviewboard
  2. Install dependencies

    npm install
  3. Set up database

    npx prisma generate
    npm prisma migrate --name initial
  4. Run development server

    npm run dev

Deployment

Vercel Deployment

  1. Push code to GitHub repository
  2. Import project in Vercel dashboard
  3. Configure environment variables in Vercel settings
  4. Deploy automatically on push to main branch

Cron Job Configuration

  1. Create account at cron-job.org
  2. Create new cron job with endpoint: https://your-domain.com/api/crons/item-status-scheduler
  3. Set schedule to */10 * * * * (every 10 minutes)
  4. Add header: Authorization: Bearer CRON_SECRET

Redis Cache Configuration (Upstash)

  1. Create account at Upstash Console
  2. Create a new Redis database
  3. Copy the REST API credentials:
    • UPSTASH_REDIS_REST_URL
    • UPSTASH_REDIS_REST_TOKEN
  4. Add these credentials to your .env file and Vercel environment variables
  5. Redis is used for caching:
    • User items (5-minute TTL)
    • Tags (10-minute TTL)
    • Automatically invalidated on data mutations

About

ReviewBoard is a full-stack web application built to streamline the submission, review, and approval process for business items.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages