No description https://chat.jusemon.com/
Find a file
Juan Sebastian Montoya c737258aed feat: enhance room management and UI with join/leave functionality
- Added GraphQL mutations and subscriptions for joining and leaving rooms
- Implemented room member tracking and display in room list
- Added leave room confirmation and error handling in chat room
- Updated room list and chat room components with new interaction features
- Improved UI with member badges, join/leave buttons, and error messages
- Enhanced room query to include member information
2025-03-04 01:46:30 -05:00
apps feat: enhance room management and UI with join/leave functionality 2025-03-04 01:46:30 -05:00
packages feat(create-turbo): apply package-manager transform 2025-03-03 22:46:02 -05:00
.dockerignore refactor: migrate from Next.js to SolidJS and GraphQL 2025-03-04 01:08:52 -05:00
.gitignore refactor: migrate from Next.js to SolidJS and GraphQL 2025-03-04 01:08:52 -05:00
.npmrc feat(create-turbo): create basic 2025-03-03 22:46:02 -05:00
docker-compose.yml refactor: migrate from Next.js to SolidJS and GraphQL 2025-03-04 01:08:52 -05:00
LICENSE refactor: migrate from Next.js to SolidJS and GraphQL 2025-03-04 01:08:52 -05:00
package-lock.json refactor: migrate from Next.js to SolidJS and GraphQL 2025-03-04 01:08:52 -05:00
package.json refactor: migrate from Next.js to SolidJS and GraphQL 2025-03-04 01:08:52 -05:00
README.md refactor: migrate from Next.js to SolidJS and GraphQL 2025-03-04 01:08:52 -05:00
turbo.json refactor: migrate from Next.js to SolidJS and GraphQL 2025-03-04 01:08:52 -05:00

Unreal Chat

A real-time chat application built with SolidJS, GraphQL, and Prisma.

Project Structure

This is a monorepo containing the following packages:

  • apps/api: GraphQL API server built with Apollo Server, GraphQL, and Prisma
  • apps/web: Web client built with SolidJS and URQL GraphQL client

Features

  • Real-time chat with GraphQL subscriptions
  • User authentication
  • Chat room management
  • Message sending and receiving
  • Public and private chat rooms

Getting Started

Prerequisites

  • Node.js (v18 or later)
  • npm (v10 or later)
  • MariaDB or MySQL

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/unreal-chat.git
cd unreal-chat
  1. Install dependencies:
npm install
  1. Set up environment variables:

Create a .env file in the apps/api directory:

DATABASE_URL="mysql://root:password@localhost:3306/unreal_chat"
JWT_SECRET="your-secret-key"

Create a .env file in the apps/web directory:

VITE_API_URL=http://localhost:4000/graphql
VITE_WS_URL=ws://localhost:4000/graphql
  1. Initialize the database:
npm run prisma:init
  1. Start the development servers:
# Start both API and web servers
npm run dev

# Or start them individually
npm run api:dev
npm run web:dev

The API will be available at http://localhost:4000/graphql and the web app at http://localhost:5173.

Available Scripts

  • npm run dev - Start all development servers
  • npm run api:dev - Start the API development server
  • npm run web:dev - Start the web development server
  • npm run build - Build all packages
  • npm run api:build - Build the API
  • npm run web:build - Build the web app
  • npm run prisma:generate - Generate Prisma client
  • npm run prisma:migrate - Run Prisma migrations
  • npm run prisma:studio - Open Prisma Studio

Technologies

Backend (API)

  • Apollo Server
  • GraphQL
  • Prisma ORM
  • MariaDB
  • JSON Web Tokens (JWT)

Frontend (Web)

  • SolidJS
  • URQL GraphQL Client
  • GraphQL Subscriptions
  • CSS

License

This project is licensed under the MIT License - see the LICENSE file for details.