A messaging platform built with React, Firebase and Reactstrap (Bootstrap v5).
Table of Contents:
🔎 This repo was created with Nx.
This React chat app is built with Nx, Redux, Bootstrap and Firebase. It provides real-time chatting capabilities with options to edit your profile, start channels, view other profiles, and start DM conversations with people. This application is a great reference point for building a robust chat application.
-
Please make sure to have Node.js (18+) locally by downloading the Javascript runtime via
brew
,choco
, orapt-get
. -
Please make sure to have Firebase configured by creating a new app on the Firebase Console. Registering with AppCheck to use ReCaptcha can help prevent abuse and safe guard your app against bad actors.
Remark: Firebase CLI can streamline a lot of common configuration operations and can be downloaded via
npm i -g firebase-tools
.
- Please make sure to have Docker Desktop operational to quickly compose the required dependencies. Then follow the docker procedure outlined below.
-
Clone the repo via
git clone https://github.com/msanvarov/chatr-messenger
. -
Download dependencies via
npm i
oryarn
. -
Create a .env file via the
cp .env.example .env
command and replace the existing environment variable placeholders with valid responses. -
Start the api in development mode by using
npm run start
(the UI will be exposed on http://localhost:4200).
- Execute the following command in-app directory:
# creates and loads the docker container in detached mode with the required configuration
$ docker-compose up -d
- The following command will download dependencies and execute the web application on http://localhost:4200 (deployed in development mode).
By default, the application comes with a config module that can read in every environment variable from the .env
file.
APP_ENV - the application environment to execute as, either in development or production. Determines the type of logging options to utilize. Options: development
or production
.
FIREBASE_* - the firebase config details that can be fetched when creating the SDK for the app.
RECAPTCHA_KEY - public recaptcha key for Firebase AppCheck.
# Start the docker container if it's not running
$ docker start chatr-messenger
# unit tests
$ docker exec -it chatr-messenger npm run test
# execute test
$ npm run test
Branches | Status |
---|---|
main | ✅ |
feat/* | 🚧 |
PRs are appreciated, I fully rely on the passion ❤️ of the OS developers.
This starter API is MIT licensed.