Search engine is example project of search engine implementation for frontend.
This project includes below:
- Trie implementation
- Google scraper
- Helm chart for deployment
- Basic web app
- Redis Stack Server
- MongoDB
- Nats server with Jetstream
- gRPC(protobuff)
You can check out open api specs:
ReadApi | WriteApi | |
---|---|---|
OpenAPI | read-api | write-api |
For development environment:
make dev-run
Default Endpoints for microservices:
ReadApi | WriteApi | Web App | |
---|---|---|---|
Endpoint | http://localhost:8087 | http://localhost:8088 | http://localhost:5173 |
For k8s environment:
make k8s
Default Endpoints for microservices:
ReadApi | WriteApi | Web App | |
---|---|---|---|
Endpoint | http://readapi.local | http://writeapi.local | http://app.local |
You can start with add those endpoints to /etc/hosts file
In order to connect scraper microservice you should use grpc connection.
Usage with evans:
evans --proto protos/searchreq/searchreq.proto --host localhost --port 50076
After that you need to type
call SearchHandler
Thus, you can connect with scraper. (If you type Alan Turing here, scraper microservice will be started to search with whole combinations that you give)
Since redis-mock doesn't have ExpectJsonGet and ExpectJsonSet, related tests will be written later