Bem-vindo ao CS-Chat! Um chat em tempo real com backend em .NET e frontend em Vue.js, estilizado para parecer um terminal de computador. Autentique-se, crie salas, converse em privado ou em grupo, tudo através de comandos.
- Interface de Terminal: Uma experiência de usuário única que simula um terminal de linha de comando.
- Autenticação: Sistema seguro de registro e login de usuários.
- Comandos: Interaja com o chat usando comandos intuitivos, como
/login
,/join
,/chat
, etc. - Salas de Chat: Crie salas de chat públicas ou privadas com senha.
- Conversas Privadas: Inicie conversas um-a-um com outros usuários.
- Atualização de Perfil: Modifique seu nome de usuário e senha com o comando
/profile
.
Este projeto é dividido em duas partes principais: o backend e o frontend.
- Framework: ASP.NET Core 8.0
- Comunicação em Tempo Real: SignalR para conexões WebSocket.
- Banco de Dados: PostgreSQL com Entity Framework Core, conectado via Supabase.
- Autenticação: JWT (JSON Web Tokens).
- Mapeamento de Objetos: AutoMapper.
- Linha de Comando: System.CommandLine para uma robusta análise de comandos.
- Containerização: Suporte para Docker.
- Framework: Vue.js 3
- UI Framework: Quasar
- Gerenciamento de Estado: Pinia
- Cliente HTTP: Axios
- Comunicação em Tempo Real: Cliente SignalR para JavaScript.
- Internacionalização: Vue-i18n.
Siga estas instruções para obter uma cópia do projeto em funcionamento na sua máquina local para desenvolvimento e testes.
- .NET SDK 8.0 ou superior.
- Node.js (que inclui o npm).
- Uma conta no Supabase para o banco de dados PostgreSQL.
- Crie um novo projeto no Supabase.
- No painel do seu projeto, vá para Project Settings > Database.
- Encontre sua string de conexão (Connection String) e copie-a.
- Na pasta
backend
, cole sua string de conexão no campo"DefaultConnection"
no arquivoappsettings.Development.json
.
- Abra um terminal na pasta
backend
. - Restaure as dependências do .NET:
dotnet restore
- Aplique as migrações do Entity Framework para criar as tabelas no seu banco de dados Supabase:
dotnet ef database update
- Inicie o servidor backend:
O servidor estará disponível em
dotnet run
http://localhost:5136
.
-
Em um novo terminal, navegue até a pasta
frontend
. -
Crie um arquivo
.env
a partir do exemplo fornecido:cp .env.example .env
O arquivo
.env
já está configurado para se conectar ao backend local. -
Instale as dependências do npm:
npm install
-
Inicie o servidor de desenvolvimento do frontend:
npm run serve
O frontend estará acessível em
http://localhost:8080
.
Use os seguintes comandos na interface de terminal para interagir com o chat:
Comando | Descrição | Uso |
---|---|---|
/help | Mostra todos os comandos disponíveis. | /help |
/register | Registra um novo usuário no sistema. | /register --username "seu-nome" --password "sua-senha" |
/login | Faz login no sistema. | /login --username "seu-nome" --password "sua-senha" |
/logout | Faz logout do sistema. | /logout |
/chat | Inicia uma conversa privada com um usuário. | /chat "nome-do-usuario" |
/create | Cria uma nova sala de chat. | /create "nome-da-sala" --description "descrição" --password "senha" |
/join | Entra em uma sala de chat existente. | /join "ID-da-sala" --password "senha-da-sala" |
/list | Lista todos os chats que você tem acesso. | /list |
/profile | Atualiza seu nome de usuário ou senha. | /profile --username "novo-nome" --password "nova-senha" --confirm-password "nova-senha" |