Skip to content

arthurmousinho/mychaty

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

95 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’¬ MyChaty

A simple web chat application

banner

πŸ”— Links

πŸš€ Features

User Authentication

  • Secure user login and registration (Email and Password)

Real-Time Messaging

  • Instant messaging with real-time updates

Manage User Friends

  • List user friends
  • Remove user friends

User Invites

  • Send chating invites for others users
  • Accept invites sent for you
  • Deny invites sent for you

Real-Time Notications

  • Message notification
  • Receive invite notification
  • Invite accepted notification

πŸ›οΈ Architecture

system-architecture system-architecture-2

πŸ› οΈ Tech Stack

Web

API

πŸ“¦ Dependencies

πŸƒβ€β™‚οΈ Running Guide (development environment)

Web

  1. Change to web directory
cd web
  1. Installing Packages
npm install
  1. Run project
npm run dev

βœ… Web project will be available at: http://localhost:5173

API

  1. Change to api directory
cd api
  1. Installing Packages
npm install
  1. Start PSQL using docker
docker compose up -d
  1. Run project
npm run dev
  1. Login using a mock user (optional)
  1. Database Vizualization (optional)
npx prisma studio

βœ… API will be available at: http://localhost:3000

πŸ‘€ Environment Variables Settings

WEB

  • Create a file .env.local file inside web folder
  • VITE_API_BASE_URL
  • If you need to add more variables, it will need to start with VITE
    • Ex: VITE_FIREBASE_STORAGE_BUCKET

API

  • Create a file named .env inside api folder
  • DATABASE_URL
    • You can set as postgresql://admin:admin@localhost:6332/mychaty?schema=public in development environment
  • JWT_SECRET

πŸ› Reporting Issues or Suggesting Enhancements

If you’ve found a bug or have a suggestion to improve MyChaty, we’d love to hear from you! Please follow the steps below to create a new issue:

  1. Check existing issues: Before creating a new issue, please check if someone has already reported the same problem or suggested something similar. This helps avoid duplicates and fosters better collaboration.

  2. Create a new issue:

    • Go to the Issues tab of the repository.
    • Click the New issue button.
    • Choose the lable of issue: bug, enhancement, API, WEB or other.
    • Include steps to reproduce the bug, details about the environment where it occurred, or a clear description of the suggestion.
  3. Issue details:

    • For bugs: Provide a clear description of the problem, steps to reproduce, expected results, and observed results.
    • For suggestions: Describe the desired functionality, how it would benefit users, and, if possible, an idea of how to implement it.
  4. Follow your issue: After creating the issue, keep an eye on it to see if anyone from the team or other contributors have added comments or questions. Be available to provide more information if needed.

  5. Contribute to the solution: If you are willing and able, feel free to work on the solution and submit a Pull Request related to your issue.

πŸ’¬ Contribution

We welcome contributions to MyChaty! Please follow these steps:

  1. Fork the repository.
  2. Create a feature branch (git checkout -b feature/your-feature-name).
  3. Commit your changes (git commit -am 'Add new feature').
  4. Push to the branch (git push origin feature/your-feature-name).
  5. Open a pull request.

About

πŸ’¬ Chating web application using websocket

Resources

Stars

Watchers

Forks