This is a simple API providing todo list functionality, stored in a sqlite database. The API is secured using JWT Authentication & role-based authorization.
- The API is build using dotnet core 3.1
- The API does not work correctly "out of the box"; review app configs before running
- The repo contains a postman collection which demonstrates use of all the API endpoints
- Admin
- Can list all users
- Can view details of a specific user
- Users cannot be assigned the Admin role via the API
- User
- This is the default User created by the API
- Can create, edit, list & remove their own todo items
- Can mark todos they own as complete or incomplete
- Users cannot see other users todo items
There is no setup required, the database will be created when the API is run & the databases will be seeded with the 2 roles & 1 admin user (admin@test.com, test123).
The API is documented with Swagger, which is implemented with Swashbuckle. Once the app is running, nagivate to http://localhost:5000/swagger to view the specification for the API.
There is also a Postman collection available in the root of the repository, import the collection to explore the API with Postman if you prefer.
Please note: the unit tests are currently incomplete.
- Create a fork of this repository in your own github account
- If you have any trouble or queries please reach out to us using any of the emails in this README Depending on the role being assessed instructions may vary.
- Choose a ui framework, preferably React, Angular+ or Vue & create a ui application in folder named "Todo.UI"
- The following functionality should be implemented:
- State management
- Register a user
- Login
- View a list of todos
- Mark a todo as complete or incomplete from the list
- Delete a todo from the list
- Add a todo
- Edit a todo
- Signout
- Styling is not a priority
- Unit tests; you do not need full coverage. A few components is fine.
- Please consider your git history as this will be reviewed
- Commit & push code regularly
- Once complete, please send a link to your repository to tim@geminisolution.co.za or elrika@geminisolution.co.za
Looking at the User role requirements, create at least 3 BDD test scenarios.
- Use the postman collection provided to:
- Register a user using your name
- Can list all users
- Can view details of a specific user
- Users cannot be assigned the Admin role via the API
- This is the default User created by the API
- Can create, edit, list & remove their own todo items
- Can mark todos they own as complete or incomplete
- Users cannot see other users todo items
- Once complete, please send a link to your repository to jehan@geminisolution.co.za or elrika@geminisolution.co.za