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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkwODUzMjUsIm5iZiI6MTcxOTA4NTAyNSwicGF0aCI6Ii8xMDQwNTEzMTcvMzA1NzE4ODU3LWFjMGY0MTYyLWExNDctNDIxMy1iMzAzLTMyY2JhYjZkMTg3NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjIyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYyMlQxOTM3MDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01N2NhYmE4MzY4MTU1ODhiNTUxYmIyNGZmMjI2ZWE2ZGQyMmVjMmJjMDlmZDA1YTkyMmEyZGI3OWE1ZjEwZWVjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.v328JgBavBf2tvp30UrIHnVC7ZzeXwOXgOcfxW3d5js)
- 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkwODUzMjUsIm5iZiI6MTcxOTA4NTAyNSwicGF0aCI6Ii8xMDQwNTEzMTcvMzA1NzEzODA5LTA0MjkwMGRiLWY2NzQtNDVkZC1iM2ZhLTc3MzAyYWRhNWI2My5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjIyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYyMlQxOTM3MDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kMGQ4ZjY1ZjQyMmRiMGJjM2M3NmZlMDYzMTAwNDQ1MmZhZTYwNDJmZGI0ZWEwZDE2NGQ0OTgyNzk3NjQyYzVlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.H_Wrp70RgSMgcyKiAkqgkLE5KXNU6vGt4fRg6yRDMMU)
![Screenshot 2024-02-18 at 17 03 00](https://private-user-images.githubusercontent.com/104051317/305713859-d5de268c-2ef9-49aa-84bc-8fbfaa1ff20a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkwODUzMjUsIm5iZiI6MTcxOTA4NTAyNSwicGF0aCI6Ii8xMDQwNTEzMTcvMzA1NzEzODU5LWQ1ZGUyNjhjLTJlZjktNDlhYS04NGJjLThmYmZhYTFmZjIwYS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjIyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYyMlQxOTM3MDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wOWRhZTA4NDc1ZjY0NmY2NjUzZmEwNWE1MWI1NjE2NmM5Yjk4YWUzZTRjNzViOTE2ZThiY2IzMjU0MDA2YmIyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.PldiFwpny5orN1XWzaGaWczksl9Enq4dbPp3wDIr03g)
![Screenshot 2024-02-18 at 17 07 29](https://private-user-images.githubusercontent.com/104051317/305713912-c640f1d0-a6f5-49e2-a00d-ab1d08ee2645.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkwODUzMjUsIm5iZiI6MTcxOTA4NTAyNSwicGF0aCI6Ii8xMDQwNTEzMTcvMzA1NzEzOTEyLWM2NDBmMWQwLWE2ZjUtNDllMi1hMDBkLWFiMWQwOGVlMjY0NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjIyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYyMlQxOTM3MDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00MjAyNTkzODdiNzkzOTBmYTQ4NDk3MzI3ZWJjYTg3NDMyYzQyY2FhMGNmMDA1MTAzN2EwZmFhZGQ0ZmE5MTk4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.G4e44lHwTz0f8qoYPA0dgb5BWUkdU5WHkcmGmYGHlpk)
![Screenshot 2024-02-18 at 17 14 09](https://private-user-images.githubusercontent.com/104051317/305713938-0107c966-bf5d-41a8-a742-4391614a634f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkwODUzMjUsIm5iZiI6MTcxOTA4NTAyNSwicGF0aCI6Ii8xMDQwNTEzMTcvMzA1NzEzOTM4LTAxMDdjOTY2LWJmNWQtNDFhOC1hNzQyLTQzOTE2MTRhNjM0Zi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjIyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYyMlQxOTM3MDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jZWRkMmQ5ZjQyNzRjYzZiNTg0ODVmNzhjNGRiNzNhMmExZTBiOTc2YTI5OWI4ZWFkYjg5YTAwZTdhMzlhMWZhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.iZYgoORFUAv55G_kjirUNsDnHscW-rfkfDB-Kc6ToSg)