This skill test has three levels of completion which will be explained in the requirements section.
Please note: you are not required to complete all levels, they are meant to help us assess your level of comfort related to the stack.
- Level 1: gRPC services basic implementation
- Level 2: Integrate a simple postgres database to save data.
- Level 3: Implement messaging broker
- Create a repository on Github and share the link to the repo upon completion.
- Must use
Golang
Build two gRPC services, auth-service and otp-service.
Create an auth service. This service will handle authentication and simple user profile.
- A user should be able to create an account using a phone number.
- On account creation an OTP should be generated by the OTP service.
- A user should be able to verify the account using the received OTP.
- A user should be able to login. By using otp.
- A user should be able to get their profile.
- SignupWithPhoneNumber
- VerifyPhoneNumber
- LoginWithPhoneNumber
- ValidatePhoneNumberLogin
- GetProfile
Create an OTP service. This service will handle the creation of an OTP.
- Will generate randomized OTP when called upon using Twilio's API.
Implement and integrate a postgres database in which to save specific events occurring within the Auth service.
- Save user profile.
- Save login and logout event data.
Integrate your choice of RabbitMQ, or GCP Pub/Sub message broker and integrate with services
- Publish
SendOTPmessage onverificationtopic upon a user's account creation
- Will consume the
SendOTPevent, then send an OTP to the user's phone.
quickstart: https://grpc.io/docs/languages/go/quickstart/
API docs: https://www.twilio.com/docs/sms/api
https://cloud.google.com/pubsub/docs/overview
quickstart: https://www.rabbitmq.com/tutorials/tutorial-one-go.html
- Tests
- Comments