This app uses MYSQL for database. For convenience a docker-compose.yml file has been added in this repo for spinning up local environment quickly.
- Navigate to the root directory of this app
- Run
docker-compose up
- Once the MYSQL image is pulled and container is started execute this command
migrate -path ./migrations -database "mysql://admin:password@tcp(localhost:3306)/wallet" up
. This will run the migrations and creates the schema & seeds with initial data.
![Screenshot 2023-11-27 at 8 55 21 PM](https://private-user-images.githubusercontent.com/3955701/285922387-086f6b6a-081c-4028-9b2e-651e1886e5f1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NjMyODAsIm5iZiI6MTcyMTQ2Mjk4MCwicGF0aCI6Ii8zOTU1NzAxLzI4NTkyMjM4Ny0wODZmNmI2YS0wODFjLTQwMjgtOWIyZS02NTFlMTg4NmU1ZjEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMDgwOTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NjY4Nzc2MTE4NDFmZWMyMDAyODAzOWE3M2UzN2FlNWU5YjFlNTZmNmIwMjBjYjk4NTdhZTNjZTZlZjk4NjA4ZiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.Cb4FO1mJ961yHH-aq8JSgyht4vfoJii_RHOwRTxBjFg)
- App is written in Go Lang
- Schema is managed by Go Lang migrations utility. This can be installed via
brew install golang-migrate
. Sample command to create migrations -migrate create -ext sql -dir migrations -seq create_users
- This uses MYSQL database
- Dev environment & dependencies managed by docker
![Screenshot 2023-11-27 at 6 25 32 PM](https://private-user-images.githubusercontent.com/3955701/285870564-b5d2ac78-f565-4c76-a855-7e11c0d175f1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NjMyODAsIm5iZiI6MTcyMTQ2Mjk4MCwicGF0aCI6Ii8zOTU1NzAxLzI4NTg3MDU2NC1iNWQyYWM3OC1mNTY1LTRjNzYtYTg1NS03ZTExYzBkMTc1ZjEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMDgwOTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NDAxYmVmOTA5NTkxNDU0YzZmNTNhYzJmZjYzNGM4NjYyZTRjYmY4MmMyM2ViYWVjNmVjZTYwNDFmYzBkMzM0NSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.goE9GGjMFadGlR24aMiAB-Rz4d16C7Ze7Hg4uooEqsU)
DBML (https://dbdiagram.io/d)
Table users {
id integer [primary key]
username varchar
created_at timestamp
updated_at timestamp
}
Table wallet {
id integer [primary key]
user_id integer
balance float
created_at timestamp
updated_at timestamp
}
Table transactions {
id integer [primary key]
user_id integer
txn_type string
txn_date timestamp
txn_amount float
closing_balance float
other_party_id integer
created_at timestamp
updated_at timestamp
}
Ref: wallet.user_id - users.id
Ref: users.id < transactions.user_id
Ref: users.id < transactions.other_party_id
![Screenshot 2023-11-27 at 8 56 51 PM](https://private-user-images.githubusercontent.com/3955701/285922893-85b07df6-ba91-4adc-85a8-366811e1ae59.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NjMyODAsIm5iZiI6MTcyMTQ2Mjk4MCwicGF0aCI6Ii8zOTU1NzAxLzI4NTkyMjg5My04NWIwN2RmNi1iYTkxLTRhZGMtODVhOC0zNjY4MTFlMWFlNTkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMDgwOTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZWNmOWY1YjhlNjNmZTc5MTBmOWI3ZWU0NDExNzg0MzA2NWE0MDE0NjdlMzBjMjBhMWE5NGZiYmZlNGExZTBlZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.Ghat1RX3_BvJxPKwDX2mWyu_oNwRT4x-wPVCf8sbqNA)
![Screenshot 2023-11-27 at 8 57 51 PM](https://private-user-images.githubusercontent.com/3955701/285923122-fd04aca0-1ee1-4bdd-b2db-ed94922b7033.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NjMyODAsIm5iZiI6MTcyMTQ2Mjk4MCwicGF0aCI6Ii8zOTU1NzAxLzI4NTkyMzEyMi1mZDA0YWNhMC0xZWUxLTRiZGQtYjJkYi1lZDk0OTIyYjcwMzMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMDgwOTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YTk5NTBkMzM5OWE5Yjk4NmQwZDNlYTRmYWI1NWZmY2ZmMjk0ZWU2NDAwY2UzMzgyOWZhYjQwOTNjYzY4NGQ4NiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ._ljm5IDcED1yqP38-puMbb7KMh6nOEqd22ZLcxhjMmI)
![Screenshot 2023-11-27 at 8 57 56 PM](https://private-user-images.githubusercontent.com/3955701/285923136-9c84b7f6-c1be-4e1d-8de3-0999ad68eadd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NjMyODAsIm5iZiI6MTcyMTQ2Mjk4MCwicGF0aCI6Ii8zOTU1NzAxLzI4NTkyMzEzNi05Yzg0YjdmNi1jMWJlLTRlMWQtOGRlMy0wOTk5YWQ2OGVhZGQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMDgwOTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MWIxODJkMWI5YWE3Yjk2NzY4MTU3NjM0YmM4NWJiMGY5YWNjYTA1OWUxNWNlZmVkNzBjNDMyYTA0MzUzMDAzZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.P7ocQ6opOAyJLMB9h5c74WTyYJ_VJQkaKoscDjFWzM4)
![Screenshot 2023-11-27 at 8 59 50 PM](https://private-user-images.githubusercontent.com/3955701/285923636-486b37d9-01f5-43cc-a7a3-72feac82a433.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NjMyODAsIm5iZiI6MTcyMTQ2Mjk4MCwicGF0aCI6Ii8zOTU1NzAxLzI4NTkyMzYzNi00ODZiMzdkOS0wMWY1LTQzY2MtYTdhMy03MmZlYWM4MmE0MzMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMDgwOTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OTJmYjNiNzRiMDcwYjBlYmY0ZWQzYjBhOTNiMDQ3NzlmZjRjZjNjOWM3ZTRhYTE0MzM2NDU1YWNkYmE0NjQ3NCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.8FTuDx421_GOm7bX-MqGMrYwVlVBVlciyFHJpkwqsao)
![Screenshot 2023-11-27 at 9 54 26 PM](https://private-user-images.githubusercontent.com/3955701/285940182-ecaaee24-9370-47c1-ae2c-824db35578bd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NjMyODAsIm5iZiI6MTcyMTQ2Mjk4MCwicGF0aCI6Ii8zOTU1NzAxLzI4NTk0MDE4Mi1lY2FhZWUyNC05MzcwLTQ3YzEtYWUyYy04MjRkYjM1NTc4YmQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMDgwOTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjJlM2I4ZGNiYjM4MWVmZjU4YjI5ZDU3NDkyY2IwMDIxZjRjMTk1OThjMTJiZDQ3NDg0NTgwNjY2MDk5YTAwMCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.2rX0bW8CbPXRzxIG18S6INKnb80oPWmM9suKdwLy1jI)
![Screenshot 2023-11-27 at 9 54 45 PM](https://private-user-images.githubusercontent.com/3955701/285940208-2196e944-67a3-4f75-bc8c-bdc2baf41c1b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NjMyODAsIm5iZiI6MTcyMTQ2Mjk4MCwicGF0aCI6Ii8zOTU1NzAxLzI4NTk0MDIwOC0yMTk2ZTk0NC02N2EzLTRmNzUtYmM4Yy1iZGMyYmFmNDFjMWIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMDgwOTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzMwZTcwNDk1OTljMzBkNDRhNGZhMWZkNDE0ZmJiMjRmYzQyNWEwNDA1MGFhZTkyZmQyMzVmMjA2YWRkNDUzNSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.fsGLNkJKEVMEhqDnFCpPQQ1MiTYwHRCW1VSK5OMVMsc)
![Screenshot 2023-11-27 at 9 54 53 PM](https://private-user-images.githubusercontent.com/3955701/285940249-79521334-a120-4568-b224-394e57082e8d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NjMyODAsIm5iZiI6MTcyMTQ2Mjk4MCwicGF0aCI6Ii8zOTU1NzAxLzI4NTk0MDI0OS03OTUyMTMzNC1hMTIwLTQ1NjgtYjIyNC0zOTRlNTcwODJlOGQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMDgwOTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9Nzk5ZTMyMmMzMDNjZDAwNDhlMjUwNTY1MzNiMmIwYjM3M2U5NjlkMzA4ZDk0NTY5N2JlZDVmOGE2NzdjNDM4YyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.MQwghPsYPzi9isDHHk2CetaqV1NBTZVpWzZNW1C_Vzs)
![Screenshot 2023-11-27 at 10 00 21 PM](https://private-user-images.githubusercontent.com/3955701/285941955-054a2200-c772-4806-afa4-949df3576bb5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NjMyODAsIm5iZiI6MTcyMTQ2Mjk4MCwicGF0aCI6Ii8zOTU1NzAxLzI4NTk0MTk1NS0wNTRhMjIwMC1jNzcyLTQ4MDYtYWZhNC05NDlkZjM1NzZiYjUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMDgwOTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODRmZmU0M2M4NGUyNmM5YTI3ODBjOTg3NjJkMGU0ODgxMGFkNzZkOGRkODc3M2Q3NzhmMTEzMmRkNmRjZWNmOSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.Xz0gl61rmcgOxtBXEDH8QjEI7RnKbhPwR31GRtpKXKw)
![Screenshot 2023-11-27 at 10 01 18 PM](https://private-user-images.githubusercontent.com/3955701/285941994-7569196a-fec8-4e25-a64a-181cca13e0f6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NjMyODAsIm5iZiI6MTcyMTQ2Mjk4MCwicGF0aCI6Ii8zOTU1NzAxLzI4NTk0MTk5NC03NTY5MTk2YS1mZWM4LTRlMjUtYTY0YS0xODFjY2ExM2UwZjYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMDgwOTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NjVkYmUzNmQwMzhkNmRmMjZjNmVlNjk5NzI5NTJhNGQ3MTU0ZDhkNTU4YWY2MzNlOWU3MTVjOGU1ZjE5Y2RjNSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.40JFUhM7UHDoewPDgY__pkxB1RZ5t6Y6ptuZ5JQqjL0)
![Screenshot 2023-11-27 at 10 01 25 PM](https://private-user-images.githubusercontent.com/3955701/285942036-8c3ca38d-3ebe-4bae-9d6f-f80803130cd3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NjMyODAsIm5iZiI6MTcyMTQ2Mjk4MCwicGF0aCI6Ii8zOTU1NzAxLzI4NTk0MjAzNi04YzNjYTM4ZC0zZWJlLTRiYWUtOWQ2Zi1mODA4MDMxMzBjZDMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMDgwOTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjMwMmQzMWUxZDUxOTVkNDk0ZjVlMDg5YjZkZTYwYjU5MDAxZDQwY2MwNjBlZjIwOWY4Y2JlMTQzNDllN2EyZCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.xYPCAPuYFgeGPUT-8MIol64AWAbhUmPi8m4zDMK7l50)
![Screenshot 2023-11-27 at 10 28 41 PM](https://private-user-images.githubusercontent.com/3955701/285949552-f2ce32e9-59ab-403f-b0bd-9afeaae09327.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NjMyODAsIm5iZiI6MTcyMTQ2Mjk4MCwicGF0aCI6Ii8zOTU1NzAxLzI4NTk0OTU1Mi1mMmNlMzJlOS01OWFiLTQwM2YtYjBiZC05YWZlYWFlMDkzMjcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMDgwOTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9Y2JiMGY0NTZiYjc4ZDU2NmE0NGZiOWExNzQ4Y2NiMWQ2NTczYTQyODZiN2MzZjA0OTk0YzM2MTU4YzYxNTY0MCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.vagGHDSQXgGP-8JjpOWn9kfZlfehMrxngoLeQKfGfAs)
![Screenshot 2023-11-27 at 10 28 51 PM](https://private-user-images.githubusercontent.com/3955701/285949582-8acc0230-2a4c-486c-bbdb-3ea4d47d686d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NjMyODAsIm5iZiI6MTcyMTQ2Mjk4MCwicGF0aCI6Ii8zOTU1NzAxLzI4NTk0OTU4Mi04YWNjMDIzMC0yYTRjLTQ4NmMtYmJkYi0zZWE0ZDQ3ZDY4NmQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMDgwOTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MmZjZTllMTUzZDJjNTYxODAwN2ZmZDY1YTVmZjE1ZDUzM2U2ODBjZWQxMWZkYjRmOGM3Y2M1NTQ5ODAwNTAxMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.AI7UalgGoMeqEMwvPC_En6bFpfsFa8geUcmT1GbHz00)
![Screenshot 2023-11-27 at 10 32 38 PM](https://private-user-images.githubusercontent.com/3955701/285950739-768e50ee-f843-44ce-bd9b-bcfdcc823dfc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NjMyODAsIm5iZiI6MTcyMTQ2Mjk4MCwicGF0aCI6Ii8zOTU1NzAxLzI4NTk1MDczOS03NjhlNTBlZS1mODQzLTQ0Y2UtYmQ5Yi1iY2ZkY2M4MjNkZmMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMDgwOTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzBlZmVmNWViYTY5NDliNTA3NWNjOWZlNzE3NDU4YjQyMWZkN2JlMjQ5NDdjMDBkNGM2NWZiMjhmODMxODUxNCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.FYATgpisMlmItBG2O98O0TM7f-eSK0taofkSnhl-YGw)