- Problem Statement: As a user, I should be able
- to register into the system with my first name, last name, email and multiple addresses with information like line 1, line 2, city, state, zip.
- to get the list of all the users in the system.
- to search a user by email and confirm if the user exists.
- to edit the address of the user but retain the old address.
- to update user information.
- to delete users from the system but am able to audit the deletion of users.
- Create an architectural diagram demonstrating the workflow of your solution to the problems below.
- Create REST API using Javamicroservice with distinct proto’s/data model and service with gradle or maven dependency management system.
- Microservice will support below endpoints
- UpsertUserAPI to update user if exists else create a new
- IsUserExistsAPI which takes input as email and returns appropriate status
- ListUsersAPI to return list of all users
- GetUserDetailsAPI inputs user id and returns user details including address.
- DeleteUserAPI which takes user id and marks the user as deleted.
- UpdateAddressAPI which takes user id and updates user address such that the old address is archived.
- Your goal is to architect a solution that will
- Create right protoBuf/data model for required API
- Demonstrate OOP principles along with separation of concerns.
- Demonstrate use of design patterns necessary for the solution.
- Plan to include indexes to optimize query performance.
- Create unit tests and integration tests to test the system behavior.
- Please include the database migration script.
- You are welcome to use any open source libraries and/or create additional services to accomplish your tasks.
- You areopen to use any database, preferred Postgres
- Setup database connections with below settings or provide ability to configure connection via env variables url host – localhost, dbname – backend_test, username – varo, password – varo.
本网站支持淘宝 支付宝 微信支付 paypal等等交易。如果不放心可以用淘宝交易！
E-mail: email@example.com 微信:itcsdx