https://github.com/marceloxhenrique/mytalk
Mytalk is a chat web application designed to provide a clear and intuitive communication experience. Get in touch with friends, family, or colleagues in a convenient and user-friendly way.
https://github.com/marceloxhenrique/mytalk
clean-architechture expressjs hexagonal-architecture jest-test nodejs oriented-object-programming port-and-adapters react-hook-form reactjs shadcn-ui socket-io tailwind-css typescript vite webapp zod
Last synced: about 2 months ago
JSON representation
Mytalk is a chat web application designed to provide a clear and intuitive communication experience. Get in touch with friends, family, or colleagues in a convenient and user-friendly way.
- Host: GitHub
- URL: https://github.com/marceloxhenrique/mytalk
- Owner: marceloxhenrique
- Created: 2024-03-21T21:33:09.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-03T21:10:12.000Z (over 1 year ago)
- Last Synced: 2026-01-03T14:38:24.670Z (5 months ago)
- Topics: clean-architechture, expressjs, hexagonal-architecture, jest-test, nodejs, oriented-object-programming, port-and-adapters, react-hook-form, reactjs, shadcn-ui, socket-io, tailwind-css, typescript, vite, webapp, zod
- Language: TypeScript
- Homepage: https://mytalk.dev
- Size: 1.11 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# [MyTalk](mytalk.dev)
Mytalk is a lightweight chat web application designed to provide a clear and intuitive communication experience. Get in touch with friends, family, or colleagues in a convenient and user-friendly way.
## Prerequisites
- [NodeJS](https://nodejs.org/)
- [PostgreSQL](https://www.postgresql.org/)
- [Git](https://git-scm.com/)
# Install and run the App locally
The App is divided in two main folders `Server` and `Client`. Each folder contains its own dependencies.
First, clone the repository
```shell
git clone git@github.com:marceloxhenrique/MyTalk.git
```
## Install Client packages
Navigate to the Client folder and install the necessary packages:
```shell
cd Client
npm install
```
## Setup .env file for Client Environment
Create a .env file in the Client folder with the following content:
```js
VITE_BACKEND_URL_BASE = "http://localhost:3000/api";
VITE_BACKEND_URL_SOCKET = "http://localhost:3000";
VITE_NODE_ENV = "dev";
```
## Install Server Packages
Navigate to the Server folder and install the necessary packages:
```shell
cd ../Server
npm install
```
## Setup .env file for Server Environment
Create a .env file in the Server folder with the following content:
```js
PORT=3000
NODE_ENV=dev
FRONT_END_URL=http://localhost:5173
FRONT_END_URL_PROD=
JWT_TOKEN_SECRET=
JWT_TOKEN_EXPIRATION=
JWT_REFRESH_TOKEN_SECRET=
JWT_REFRESH_TOKEN_EXPIRATION=
DB_HOST=
DB_PORT=
DB_USER=
DB_PASSWORD=
DB_NAME=
DB_CONNECTION='postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public'
```
## Setup the database
Run the database migration script to set up the database schema:
(Note: The database cannot be accessed by other users while the migration is running.)
```shell
npm run migration
```
## Running Tests
Navigate to the Server folder and use the following command to run the tests:
```shell
npm test
```
This will execute the test scripts defined in the Server folder, checking the functionality and reliability of your server-side code.
## Start the app
Navigate to the Client folder and run:
```shell
npm run dev
```
Open a new terminal window, navigate to the Server folder, and run:
```shell
npm run dev
```
The client application will be available at `http://localhost:5173`.
The server will be running on `http://localhost:3000/api` (or the port specified in your .env file).
## Contribute
If you want to contribute, clone this repo, create your work branch and get your hands dirty!
```shell
git clone git@github.com:marceloxhenrique/MyTalk.git
```
```shell
git checkout -b feature/NAME
```
At the end, open a Pull Request explaining the problem solved or feature made, if exists, append screenshot of visual modifications and wait for the review!