You have been commissioned to build a new, simple application for managing RF-SMART’s “Library” conference room’s books. Lately there’s been confusion around who’s reading what books, which ones are available in the library conference room, and when they’re expected back. Some employees also would like to leave comments about a book they’ve read and read other’s comments as well. Finally, when a book is accidentally destroyed or lost, nobody is sure who to tell or how to let others know it’s no longer available.
To assist with the design of this application, here are some general guidelines for technical direction and overall design for how to approach this project:
- This can be created using mySQL or PostgreSQL
- You can use a Docker container for doing this, or
- You can install a database directly on your local machine
- You get to design the schema, tables, etc. that you’ll use based on what you learn
- You’re going to be creating REST services
- You’ll need classes to represent your data models, requests, responses, etc.
- You’ll need controllers with actions to represent your REST endpoints
- You’ll need some validation
- You’ll need NuGet packages for communicating with your database
- You’ll need settings for the connection string and potentially other things
- You’ll need to store, update, and read data from your database in your code
- Use your JavaScript skills to create a basic web application
- You’ll be calling your REST API from your web application to perform the various actions
- It doesn’t have to be pretty, but it should be functional
- This will use Playwright with C#
- You’ll use the Page Object Model (POM) pattern
- You’ll need tests that cover the UI
- You’ll need tests that cover the API directly
- See: Test Cases*
- Bonus points for orchestrating them in containers (docker, docker-compose, etc.)
- You should use the Page Object Model design pattern in constructing your test bed
- There should be 2 test cases for each use-case presented: 1 for UI, 1 against the API.
- There should also be at least 4 negative test cases, you can distribute the 4 across different use-cases or all on the same use-case.
- Collect data and create artifact after manipulating it in some way (reverse the order, select last 5, etc.)
- Create a broken or non-existent endpoint in the API and test that a happy path test returns a failing test result.
- Commit your code to GitHub for review
- Demo individually with SDETS, and code will be reviewed
Timeline goal: 2 months