In this case study Keep Note Step 6, we will implement JWT (JSON Web Token) authentication on top of Keep Note Step 5 Assignment. JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed.
In this step, we will create this application in five parts
1. AuthenticationService
2. UserService
3. NoteService
4. CategoryService
5. ReminderService
Filter using JWT should be implemented for all except the AuthenticationService.
Containerization of all the microservices using Docker needs to be implemented as part of this assignment. For each services, Dockerfile has to be updated with the required instructions. All the images to be run using the docker-compose.
Swagger needs to be implemented in all the services.
Step 1: Clone the boilerplate in a specific folder on your local machine and import the same in your eclipse STS.
Step 2: Go thru the readme.md file and implement the code for AuthenticationService and run the test cases.
Step 3: Go thru the readme.md file and implement the code for UserService and run the test cases.
Step 4: Go thru the readme.md file and implement the code for NoteService and run the test cases.
Step 5: Go thru the readme.md file and implement the code for CategoryService and run the test cases.
Step 6: Go thru the readme.md file and implement the code for ReminderService and run the test cases.
The folders and files you see in this repositories, is how it is expected to be in projects, which are submitted for automated evaluation by Hobbes
Project
|
├── AuthenticationService // This is the microservice for User Authentication
├── NoteService // This is the microservice of Note
├── CategoryService // This is the microservice of Category
├── ReminderService // This is the microservice of Reminder
├── UserService // This is the microservice of User
├── .gitignore // This file contains a list of file name that are supposed to be ignored by git
├── .hobbes // Hobbes specific config options, such as type of evaluation schema, type of tech stack etc., Have saved a default values for convenience
├── .project // This is automatically generated by eclipse, if this file is removed your eclipse will not recognize this as your eclipse project.
├── README.md // This is a readme file about the Keep Note step6 assignment.
├── docker-compose.yml // yaml configuration file to define and run the multi-container docker application.
└── pom.xml // This is the parent POM, which holds all the microservice projects.
PS: All lint rule files are by default copied during the evaluation process, however if need to be customizing, you should copy from this repo and modify in your project repo
-
Clone the base boilerplate in the folder assignment-solution-step6 of your local machine
git clone https://gitlab-cts.stackroute.in/stack_java_keep/KeepNote-Step6-Boilerplate.git assignment-solution-step6 -
Navigate to assignment-solution-step6 folder
cd assignment-solution-step6 -
Remove its remote or original reference
git remote rm origin -
Create a new repo in gitlab named
assignment-solution-step6as private repo -
Add your new repository reference as remote
git remote add origin https://gitlab-cts.stackroute.in/{{yourusername}}/assignment-solution-step6Note: {{yourusername}} should be replaced by your username from gitlab
-
Check the status of your repo
git status -
Use the following command to update the index using the current content found in the working tree, to prepare the content staged for the next commit.
git add . -
Commit and Push the project to git
git commit -a -m "Initial commit | or place your comments according to your need"git push -u origin master -
Check on the git repo online, if the files have been pushed
- We expect you to write the assignment on your own by following through the guidelines, learning plan, and the practice exercises
- The code must not be plagirized, the mentors will randomly pick the submissions and may ask you to explain the solution
- The code must be properly indented, code structure maintained as per the boilerplate and properly commented
- Follow through the problem statement shared with you
- You add the respective Mentor as a Reporter/Master into your Assignment Repository
- You have checked your Assignment on the Automated Evaluation Tool - Hobbes (Check for necessary steps in your Boilerplate - README.md file. ) and got the required score - Check with your mentor about the Score you must achieve before it is accepted for Manual Submission.
- Intimate your Mentor on Slack and/or Send an Email to learner.support@stackroute.in - with your Git URL - Once you done working and is ready for final submission.
*** Release 0.1.0 ***
- Right click on the Assignment select Run As -> spring boot app to run your Assignment.
- Right click on the Assignment select Run As -> JUnit Test to run your Assignment.