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.
The App is divided in two main folders Server
and Client
. Each folder contains its own dependencies.
First, clone the repository
git clone git@github.com:marceloxhenrique/MyTalk.git
Navigate to the Client folder and install the necessary packages:
cd Client
npm install
Create a .env file in the Client folder with the following content:
VITE_BACKEND_URL_BASE = "http://localhost:3000/api";
VITE_BACKEND_URL_SOCKET = "http://localhost:3000";
VITE_NODE_ENV = "dev";
Navigate to the Server folder and install the necessary packages:
cd ../Server
npm install
Create a .env file in the Server folder with the following content:
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'
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.)
npm run migration
Navigate to the Server folder and use the following command to run the tests:
npm test
This will execute the test scripts defined in the Server folder, checking the functionality and reliability of your server-side code.
Navigate to the Client folder and run:
npm run dev
Open a new terminal window, navigate to the Server folder, and run:
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).
If you want to contribute, clone this repo, create your work branch and get your hands dirty!
git clone git@github.com:marceloxhenrique/MyTalk.git
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!