unreal-chat/README.md
Juan Sebastian Montoya 16731409df refactor: migrate from Next.js to SolidJS and GraphQL
- Converted web application from Next.js to SolidJS with Vite
- Replaced React components with SolidJS components
- Implemented GraphQL client using URQL
- Added authentication, room, and chat components
- Updated project structure and configuration files
- Removed unnecessary Next.js and docs-related files
- Added Docker support for web and API applications
2025-03-04 01:08:52 -05:00

109 lines
2.1 KiB
Markdown

# 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:
```bash
git clone https://github.com/yourusername/unreal-chat.git
cd unreal-chat
```
2. Install dependencies:
```bash
npm install
```
3. 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
```
4. Initialize the database:
```bash
npm run prisma:init
```
5. Start the development servers:
```bash
# 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.