Skip to content

chatCourt is a text-driven simulation platform that replicates court proceedings in a controlled digital environment. Designed for role-play, educational practice, and legal procedure demonstrations, it allows users to assume roles such as Judge, Prosecutor, Defense Attorney, Clients and Jury.

Notifications You must be signed in to change notification settings

pididnothing/chatCourt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🏛️ chatCourt — A Text-Based Court Simulation Platform

image

chatCourt is a text-driven simulation platform that replicates court proceedings in a controlled digital environment. Designed for role-play, educational practice, and legal procedure demonstrations, it allows users to assume roles such as Judge, Prosecutor, Defense Attorney, Clients and Jury — all while adhering to realistic courtroom rules and flows. While many rules of proceedings and methods of enforcing them remain to be integrated into the framework, the current framework can be used well for informal debates to be structured.


📌 Features

🗣️ Real-time Text-based Debates

🎭Roles and Colour Coding

  • Messages sent by users of different roles are coloured differently.
    image
    • Judges - Yellow
    • Defence - Blue
    • Prosecution - Red
    • Jury - Green

🔒 Role-based Access Control To Chats

  • The judge can control who can send messages at anytime during proceedings using Court States:

    image

    • Open: Any participant can send messages
    • Prosecution: Only Prosecution Attornerys can send messages.
    • Defense: Only Defense Attorneys can send messages.
    • Jury: Only members of the Jury can send messages.
    • Judge: Only the judge can send messages.
    • Closed: The Case is considered closed and nobody is allowed to message. State can still be changed by the judge.

⚖️ Courtroom Procedure Simulation: objections, jury discussion, verdict declaration

  • Objections: The in-line command "./objection" can be used to object to a statement of the opposition when they have access to the court. Eg. a defense attorney may object to a statement made by the prosecution attorney while the court is still in the Prosecution state. This automatically changes the court's state to Judge, providing thej udge with the opportunity to handle the objection.
    image image

  • Verdict: The in-line command "./verdict" can be used by the judge to pass the verdict. This automatically changes the state of the court to Closed.
    image image

    [in-line commands must be typed at the start of a message.]

  • Jury Secrecy: Messages sent by members of the jury are only visible to other members of the jury and to the judge.
    image View for Jury and Judge users

    image View for Other Users

🔍Search and Filter

  • Search for Courts and filter out Closed Courts

🌐 Web-based Interface (React / Vite / Node / Express / MongoDB)


📦 Tech Stack

  • Frontend: React + Vite
  • Backend: Node.js + Express
  • Database: MongoDB (via Mongoose)
  • Authentication: JWT + Role-based Access Control
  • Real-time Communication: Socket.io

About

chatCourt is a text-driven simulation platform that replicates court proceedings in a controlled digital environment. Designed for role-play, educational practice, and legal procedure demonstrations, it allows users to assume roles such as Judge, Prosecutor, Defense Attorney, Clients and Jury.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published