A simple, multi-user text-based chat app.
This is a Typescript Vite app using Firebase for the backend and is deployed to Vercel here.
User can register an account, select and chat with the other users who have registered. The app has public and private pages and you must be logged in to access the chat page.
The app was written using eslint standards, prettier for formatting the code, and conventional commits.
The project dependencies are managed by npm.
- Clone the project.
- Install dependencies.
- Create a new Web Google Firebase project: https://console.firebase.google.com/.
- Create and enable both the
Firestore DatabaseandRealtime Database. - Under the Firebase project's settings, scroll down to add a new Web page app
- Locate the
firebaseConfigsample JS code with all the API key/config data. Looks like this:
const firebaseConfig = {
apiKey: "xxx",
authDomain: "xxx",
projectId: "xxx",
storageBucket: "xxx",
messagingSenderId: "xxx",
appId: "xxx",
databaseURL: "xxx"
};
- Create a
.envenvironment variable file in the top level directory of the cloned project on your computer and copy/paste all the config data into it assigned to variables named as the following:
VITE_FIREBASE_API_KEY=xxx
VITE_FIREBASE_AUTH_DOMAIN=xxx
VITE_FIREBASE_PROJECT_ID=xxx
VITE_FIREBASE_STORAGE_BUCKET=xxx
VITE_FIREBASE_MESSAGING_SENDER_ID=xxx
VITE_FIREBASE_APP_ID=xxx
VITE_FIREBASE_DATABASE_URL=xxx
Then src/firebaseConfig.ts should be able to read them when you run the project.
- Run
npm run devto launch the project locally in your web browser. If you get a Firebase error, check theRulestab of both theFirestore DatabaseandRealtime Databaseto make sure the project has the read/write permissions set to "true".
- Go through the steps above for running the project locally.
- Enable
huskypre-commit hooks:npx husky install
We use the pre-commit hooks to run eslint and require conventional commit formats. You can test that husky is working by trying to commit code using a message format unacceptable to conventional commits.
