84 lines
2.3 KiB
Markdown
84 lines
2.3 KiB
Markdown
# [Barretthousen](https://barretthousen.com)
|
|
|
|
Search and get alerts for items across the most popular auction sites.
|
|
|
|
Built with microservice architecture, for learning purposes
|
|
|
|
### Links
|
|
|
|
- [Keybase Team Chat](keybase://team/barretthousen)
|
|
- [Source](https://git.vdhsn.com/Barretthousen/barretthousen)
|
|
- [Auction terms glossary](https://auctionsneapolitan.com/Auction-Terms-Glossary.html)
|
|
- [User's Site](https://barretthousen.com)
|
|
- [Admin Panel](https://admin.barretthousen.com)
|
|
|
|
|
|
### Goals
|
|
|
|
1. Ability to search upcoming and live auctions across major auction sites
|
|
2. Get an email digest of upcoming auctions for the week
|
|
|
|
Future goals
|
|
|
|
1. Get email alerts when these auctions are about to go live
|
|
2. Specify search criteria for email alerts
|
|
|
|
|
|
## Technology
|
|
|
|
For Users
|
|
- [Prod](https://barretthousen.com)
|
|
- [Staging](https://beta.barretthousen.com)
|
|
|
|
For Admins
|
|
|
|
- [Prod](https://beta.barretthousen.com)
|
|
- [Staging](https://admin.beta.barretthousen.com)
|
|
- [Architecture Diagram (use diagrams.net)](./doc/Barretthousen_mvp.drawio)
|
|
|
|

|
|
|
|
### Services
|
|
|
|
- Web-client
|
|
Frontend site that users access to browse upcoming auctions and subscribe for updates to their searches
|
|
|
|
- Catalog
|
|
API for searching upcoming auctions.
|
|
|
|
- Ringman
|
|
Manages email subscriptions and sending emails to users about upcoming auctions.
|
|
|
|
- Runner
|
|
Scrapes sites for upcoming auctions.
|
|
Transforms the data into a suitable shape and stores it for use by the frontend.
|
|
|
|
- Auctioneer
|
|
Enables site administrators to kicks off scrape and email jobs in Runner and Ringman, and view status on current/past jobs.
|
|
|
|
- BHDB
|
|
Monolithic postgres datbabase tying it all together
|
|
|
|
|
|
### Contributing
|
|
|
|
|
|
Install `asdf` and run `hack/asdf_plugin_setup`
|
|
|
|
```sh
|
|
# install asdf tools, build tooling, encryption key for sops
|
|
make setup
|
|
|
|
# generate protobufs and sql boilerplate
|
|
make gen
|
|
|
|
# spin up a k8s cluster, build and deploy services locally w/ hot reloading
|
|
make dev
|
|
|
|
# build production docker images for the backend microservices, optionally push to the respective env
|
|
make build-backend-image SERVICE=[catalog, runner, proxy-client, proxy-admin] [ENV=[beta, prod]]
|
|
|
|
# build client docker image for web frontends, optionally push to the respective env
|
|
make build-client-image SERVICE=[web-client] [ENV=[beta, prod]]
|
|
```
|