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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI4MDQxNDksIm5iZiI6MTcyMjgwMzg0OSwicGF0aCI6Ii8xMDQwNTEzMTcvMzA1NzE4ODU3LWFjMGY0MTYyLWExNDctNDIxMy1iMzAzLTMyY2JhYjZkMTg3NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODA0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgwNFQyMDM3MjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lYzViNzhkYmY0YzFiMzQ0ZDk5NzE1NWVmYTZhOTg2NGFhNTU0ODllZmYxNzk4MTQwNjQ0Y2FlZjVmZWNjYWNlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9._1EPGe_PQHnDJNJv5KWGSrvyIgu9D7CDny524Oaj-xs)
- 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI4MDQxNDksIm5iZiI6MTcyMjgwMzg0OSwicGF0aCI6Ii8xMDQwNTEzMTcvMzA1NzEzODA5LTA0MjkwMGRiLWY2NzQtNDVkZC1iM2ZhLTc3MzAyYWRhNWI2My5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODA0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgwNFQyMDM3MjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03NzdmM2E2MGUzNDI5MzgyN2FiYTVhNDY4YTQ1ZTM1YjcyZjc0YmY3MjQwYjliZjZhNTdjYzVkNTI5OGMzMTMyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.bcRChAbtSdt2oHMqMjXUMx1go7ntsPt7f7M_LdO65ZI)
![Screenshot 2024-02-18 at 17 03 00](https://private-user-images.githubusercontent.com/104051317/305713859-d5de268c-2ef9-49aa-84bc-8fbfaa1ff20a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI4MDQxNDksIm5iZiI6MTcyMjgwMzg0OSwicGF0aCI6Ii8xMDQwNTEzMTcvMzA1NzEzODU5LWQ1ZGUyNjhjLTJlZjktNDlhYS04NGJjLThmYmZhYTFmZjIwYS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODA0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgwNFQyMDM3MjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04YzZlNWU0OGM4MDBlY2ZkMmVmODg3YWVmNTZlOGU5YTExZjc0YTExMjgyZDVlOGJmZTE5ZmY4N2ZlMGI2ZGI3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.JocRklsibFhGtMz1V8ZX_lQNfHxk90ygUfWXancxIE8)
![Screenshot 2024-02-18 at 17 07 29](https://private-user-images.githubusercontent.com/104051317/305713912-c640f1d0-a6f5-49e2-a00d-ab1d08ee2645.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI4MDQxNDksIm5iZiI6MTcyMjgwMzg0OSwicGF0aCI6Ii8xMDQwNTEzMTcvMzA1NzEzOTEyLWM2NDBmMWQwLWE2ZjUtNDllMi1hMDBkLWFiMWQwOGVlMjY0NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODA0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgwNFQyMDM3MjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01ODg5YjczNzgxYjlhNDAyMzQ4ZjAyYzhkYjVjYjgyNDI0YzMxZjIxZTM3OWE2YmNlNzVkZThiOGU5NGU0YmU5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.SvXZ7c9_QNQuMrqMYzSKckNzk7hz-PYWM_7V-UCXaX4)
![Screenshot 2024-02-18 at 17 14 09](https://private-user-images.githubusercontent.com/104051317/305713938-0107c966-bf5d-41a8-a742-4391614a634f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI4MDQxNDksIm5iZiI6MTcyMjgwMzg0OSwicGF0aCI6Ii8xMDQwNTEzMTcvMzA1NzEzOTM4LTAxMDdjOTY2LWJmNWQtNDFhOC1hNzQyLTQzOTE2MTRhNjM0Zi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODA0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgwNFQyMDM3MjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lZjUwMzQzMWZkZDJkZGM1YWIwZWJmYTE0MzAxY2EyYzcwZDJhNTBmNWNmZDdkZTVjYmI4Y2EzOWQwNTIzMDA2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.X3gD2f6xfGz26iKRcsBVDMFF0ogCksNkF59HSgW2e-o)