Skip to main content

EssayBot UI

Frontend application for the EssayBot essay grading system.

GitHub Repository: https://github.com/dmsb-dash-labs/EssayBot-UI

Server Deployment

EnvironmentServerPathBranch
ProductionA6000/var/www/Essaybot-UImain
UATA6000/var/www/Essaybot-UI-UATdynamic-update

Tech Stack

CategoryTechnology
FrameworkNext.js 15
LanguageTypeScript 5
UI LibraryReact 18
StylingTailwind CSS 3.4
State ManagementZustand
Data FetchingTanStack React Query, Axios
UI ComponentsRadix UI, shadcn/ui
FormsReact Hook Form + Zod
ChartsRecharts
AnimationsFramer Motion
Real-timeSocket.IO Client
Themingnext-themes

Folder Structure

EssayBot-UI/
├── app/ # Next.js App Router pages
├── common/ # Shared utilities & constants
├── components/ # React components
├── data/ # Static data files
├── hooks/ # Custom React hooks
├── lib/ # Core library functions
├── public/ # Static assets
├── stores/ # Zustand state stores
├── styles/ # Global stylesheets
└── types/ # TypeScript type definitions

Directory Reference

/app

Next.js App Router directory containing all pages and layouts.

PathDescription
(main)/Main authenticated layout group
(main)/dashboard/Dashboard page
(main)/feedback/Feedback viewing page
(main)/history/Grading history page
(main)/playground/Essay grading playground with rubric editor
(main)/reports/Reports and analytics page
(main)/submissions/Submissions management page
(main)/upload/Essay upload page
terms/Terms of service page
layout.tsxRoot layout
page.tsxLanding/login page
providers.tsxApp-level context providers
globals.cssGlobal CSS imports

/components

Reusable React components.

PathDescription
ui/shadcn/ui base components (button, input, dialog, etc.)
fallbacks/Loading states, error pages, and fallback UI
Sidebar.tsxMain navigation sidebar
AuthProvider.tsxAuthentication context provider
AIDetectionAlert.tsxAI detection warning component
BulkGradingProgressModal.tsxBulk grading progress indicator

/stores

Zustand state management stores.

FileDescription
useCourseStore.tsCourse selection state
useRubricUndoStore.tsRubric undo/redo history
useUserStore.tsUser authentication state

/hooks

Custom React hooks.

FileDescription
use-user.tsUser authentication hook
use-bulk-grading-progress.tsBulk grading progress tracking
use-toast.tsToast notification hook
use-mobile.tsxMobile viewport detection

/lib

Core utility functions and API layer.

FileDescription
api.tsAxios API client configuration
utils.tsGeneral utility functions (cn, etc.)
finalizeContent.tsContent processing utilities

/common

Shared utilities and constants.

FileDescription
urls.tsAPI endpoint URLs
exportToPdf.tsPDF export functionality

/types

TypeScript type definitions.

FileDescription
grading.tsGrading-related types
file-saver.d.tsFile saver type declarations

/public

Static assets served at root path.

FileDescription
DASH Logo Bloo.pngApplication logo
sample_essays.xlsxSample essays template
manual.pdfUser manual

Key Configuration Files

FilePurpose
next.config.mjsNext.js configuration
tailwind.config.tsTailwind CSS configuration
tsconfig.jsonTypeScript configuration
components.jsonshadcn/ui configuration
ecosystem.config.jsPM2 deployment configuration
nginx-config.confNginx server configuration
deploy.shDeployment script

Quick Commands

Install Dependencies

npm install

Start Development Server

npm run dev

Build for Production

npm run build

Start Production Server

npm run start