Live Demo: https://www.ponderpal.chat
![Screenshot 2024-02-18 at 18 37 11](https://private-user-images.githubusercontent.com/104051317/305718857-ac0f4162-a147-4213-b303-32cbab6d1875.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk0NjE4MzcsIm5iZiI6MTcxOTQ2MTUzNywicGF0aCI6Ii8xMDQwNTEzMTcvMzA1NzE4ODU3LWFjMGY0MTYyLWExNDctNDIxMy1iMzAzLTMyY2JhYjZkMTg3NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYyN1QwNDEyMTdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05MjkzNDQwNDBhMDBhN2RiODc0ZmZlYTUwYmM4NmE4YzA4YTU2NWE4YjM0NmYyNzYyNzNmOTUwMWUwNTI2MDJjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.pt9C0vn2gN8pWXK8IO7LrgrNK3c47iQkrAWKZj3Uxhc)
- Vue 3 Composition API (script setup)
- Vuetify 3
- Websockets
- Pinia for store management
- Axios for HTTP Requests
- Vee-validate, vue-router and vue3-emoji-picker
- Real-time messaging with Websockets
- Google oauth2 authentication
- Count unread messages: per chat and total count
- Monitor friends' statuses
- Track message delivery/read statuses: sending, sent and read
- See if friend is typing
- Toggle between teal/midnight themes
- Google Analytics integration
- FastAPI, Websockets, Pydantic 2
- Postgres (asyncpg), async Redis (PubSub and Cache)
- async SQLAlchemy 2
![Screenshot 2024-02-18 at 16 58 09](https://private-user-images.githubusercontent.com/104051317/305713809-042900db-f674-45dd-b3fa-77302ada5b63.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk0NjE4MzcsIm5iZiI6MTcxOTQ2MTUzNywicGF0aCI6Ii8xMDQwNTEzMTcvMzA1NzEzODA5LTA0MjkwMGRiLWY2NzQtNDVkZC1iM2ZhLTc3MzAyYWRhNWI2My5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYyN1QwNDEyMTdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hNmY5ZDIyZmY2MDRjMWE1N2FlMmRlYTQxZWVjZjUyMWZhOGZiZjRmNzA2OTEyYjBjZWVlNzdmYmE0ZGU4Nzk5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.gg3kAN-qRCCnt_zdIvE7Ka8cYZ04h-hURReGkMzWQc4)
![Screenshot 2024-02-18 at 17 03 00](https://private-user-images.githubusercontent.com/104051317/305713859-d5de268c-2ef9-49aa-84bc-8fbfaa1ff20a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk0NjE4MzcsIm5iZiI6MTcxOTQ2MTUzNywicGF0aCI6Ii8xMDQwNTEzMTcvMzA1NzEzODU5LWQ1ZGUyNjhjLTJlZjktNDlhYS04NGJjLThmYmZhYTFmZjIwYS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYyN1QwNDEyMTdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00MTAzNDdmMDMwNmZkZWUwYzFiY2Q1ZWI2MmM3MTdmZTQxNzQ0MjRlNTBmYzMxZDFkMDZlMDI0NzhlZTUzNzhmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.o8NVnT13C1KxkOpxqn5UpETezH5kORI2Cred5PoqANI)
![Screenshot 2024-02-18 at 17 07 29](https://private-user-images.githubusercontent.com/104051317/305713912-c640f1d0-a6f5-49e2-a00d-ab1d08ee2645.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk0NjE4MzcsIm5iZiI6MTcxOTQ2MTUzNywicGF0aCI6Ii8xMDQwNTEzMTcvMzA1NzEzOTEyLWM2NDBmMWQwLWE2ZjUtNDllMi1hMDBkLWFiMWQwOGVlMjY0NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYyN1QwNDEyMTdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00MDhlMzZlZjVmYzZkZmJjZjQwZTA2MWQyN2ZmMmVhMTk5YjdhMjAyMWU4MTk1MjkwZjI4ZmQ3MmMzZjFlMTBlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.yfy-b38T6btEvMH1SWkpvYaDxvWHzJ4XpYaK5d6elEk)
![Screenshot 2024-02-18 at 17 14 09](https://private-user-images.githubusercontent.com/104051317/305713938-0107c966-bf5d-41a8-a742-4391614a634f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk0NjE4MzcsIm5iZiI6MTcxOTQ2MTUzNywicGF0aCI6Ii8xMDQwNTEzMTcvMzA1NzEzOTM4LTAxMDdjOTY2LWJmNWQtNDFhOC1hNzQyLTQzOTE2MTRhNjM0Zi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYyN1QwNDEyMTdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jOTM5Mjk3MTUyMjNhNWRhMmRhMTczYmE1YzgwOTI2ZGZmYjFkY2FmNjNhNDhjM2ZkN2YwNGQxYjExZGZlNzRlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.CPdlm2B3GHlSnnefhXPvnNvDjCTl62SJZRMsKrw3Uhc)