This is a Svelte implementation of my previous messenger clone I made this year. I was not satisfied with the code, so I'm starting fresh here!
Features of this chat application include:
- A Public chat that all users can type in.
- Anonymous user sign in.
- Google + Github sign in (Later on).
- Private chats + user to user messaging.
- Image upload.
- Dark mode + Light mode toggle.
![signinform](https://private-user-images.githubusercontent.com/32966645/291697375-6201e976-30fc-4b4c-90b5-9ea123036acd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM3MTc4MzAsIm5iZiI6MTcyMzcxNzUzMCwicGF0aCI6Ii8zMjk2NjY0NS8yOTE2OTczNzUtNjIwMWU5NzYtMzBmYy00YjRjLTkwYjUtOWVhMTIzMDM2YWNkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE1VDEwMjUzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRiY2NmZWZmNTRhMWMzZDk5YmIwN2VlNDhjZDgwMDQyM2EyY2MyYWVkZjkyYmEwOGE0M2Y3M2RkNTcwYzYyMGMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Yi_N6WMz1oi4bFtP6uHqSYExAAaOLTIL6OkvYnYdpvg)
![home](https://private-user-images.githubusercontent.com/32966645/291697482-fe390a7d-9c0c-4852-8367-86068d788d1c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM3MTc4MzAsIm5iZiI6MTcyMzcxNzUzMCwicGF0aCI6Ii8zMjk2NjY0NS8yOTE2OTc0ODItZmUzOTBhN2QtOWMwYy00ODUyLTgzNjctODYwNjhkNzg4ZDFjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE1VDEwMjUzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU1ODJlN2U5N2NjYTk3YmI3Nzg3M2Q0ZjYxZGMwZDQ5NTRjNjUxZTIxYWE2ZDRlN2Y1ZjM3NDQ0MTVjODNjYjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.4kWgJCcwdVy7lGTnUT26co1gER_mR2Zr0Xal2yB-Ud8)
![profileform](https://private-user-images.githubusercontent.com/32966645/291697770-3258543b-ee28-4c86-80f6-89fd0acb8cb0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM3MTc4MzAsIm5iZiI6MTcyMzcxNzUzMCwicGF0aCI6Ii8zMjk2NjY0NS8yOTE2OTc3NzAtMzI1ODU0M2ItZWUyOC00Yzg2LTgwZjYtODlmZDBhY2I4Y2IwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE1VDEwMjUzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ2N2MxN2M1YjI1MjVjZDA2ZDA1MTVmMzMyNzM4NzZiNGQ3OTk3MmE4NzNkMGNjNzE5OGFiMGY0M2E4ZGM2MzImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.XpQi90o_5vzQU8AwGOGd7MFZHfN1HHz5PCMa4VjxOGo)
![addnewchatform](https://private-user-images.githubusercontent.com/32966645/291697817-aa0b261c-c7ba-4c94-9947-ae34b5b60b9e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM3MTc4MzAsIm5iZiI6MTcyMzcxNzUzMCwicGF0aCI6Ii8zMjk2NjY0NS8yOTE2OTc4MTctYWEwYjI2MWMtYzdiYS00Yzk0LTk5NDctYWUzNGI1YjYwYjllLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE1VDEwMjUzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNlMjljNDUwMjAyZWY3MzgwYThjYTFjZDA4MDkyNWJiNjBiNWFhZTNjYjEyOGJhMDgzN2JhMTcyOTQ5MzRkZjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.rUIyahj3i2bCMJzv01X-IGvWg2HJtWuW2tG0ZXhkPzI)
![deletemessageform](https://private-user-images.githubusercontent.com/32966645/291697692-36e993f0-9cc4-4693-9a08-8d00609c6f99.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM3MTc4MzAsIm5iZiI6MTcyMzcxNzUzMCwicGF0aCI6Ii8zMjk2NjY0NS8yOTE2OTc2OTItMzZlOTkzZjAtOWNjNC00NjkzLTlhMDgtOGQwMDYwOWM2Zjk5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE1VDEwMjUzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE5YjYzZWIxYWRkNzBmNDM4YWY1NzU3YzMyMjA5YzZkNmVlYmE4MTlmNGRlYzIyYjhmY2UwNDE4YWE1YmRjZTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Wu1bOKKbxOyy0hx4sxkPjyCp9jx_RKzki0Bmz393jwo)
- Clone the repository using
git clone https://github.com/darienmiller88/MessengerV2
- Migrate the necessary information to your local
.env
as described in the.env_sample
file - Run
go build
to create a root levelMessengerV2.exe
file, and then run.\MessengerV2
to run the executable. If an executable is not needed, simply inputgo run main.go
instead, or.\fresh
to enable a server restart on change. cd
into theclient
folder, and runnpm run dev
to the Vite server, which should be on port 5173
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Feel free to leave suggestions as well, I'm always looking for ways to improve!