Each person can Submit online via Canvas Assignments Process & Tools Challenge 1. Marks awarded as per rubrics on Canvas. Students are not allowed to discuss about this assessment in discussion forum. Due Dates During week 7, assignment would be published on Monday 12 pm and must be submitted in 24 hours, due on Wednesday 12 am (Tuesday Midnight) Total Marks: 45 (20% of your grade) Total Marks 20 1 Overview You are required to answer questions and write answers in your words or implement a code where it is asking. All questions are about lectures 5-10 (recording videos and notes) and tutorials weeks 6-9. Purpose of the Assignment: Assessing your knowledge that has been practiced from Week 5 to Week 10 including CI/Docker through different problem/questions that you supposed to answer. 2 Scenario Microservices Git Docker-CI: Scenario and requirements: Assume we have an online Fund Management Service, and the main business function is account management. Therefore, we want to create two Microservices that can create, update, delete, and read persons and their accounts. We also want to keep our code on Github and use Dev branch for implementation and release our final version through Main branch. For implementing each feature, we can use a feature branch that will be merged into Dev branch when the feature is ready. Later we want to dockerise both services and dockerise our local database. So we can run them locally on different ports and being able to test by postman. Writing three unit-tests per services for controllers. Finally, we want to build, run and test our product through Github action CI ( with db) Important: Database must be local, (not on cloud), and it is strictly MySQL for id: 01, marking purpose. RMIT Cllassiification:: TTruussteedd Your application, for each service should have these packages under main package: – controller – dao ( you may add separate package as services) – exception – model You need to have two services and therefore two apps that includes two end-points: Create Person API Endpoint: http://localhost:8080/person (POST). Request Body can be like: { age: 25, } – name: John Smith, address: 10 Albert St, Melbourne, postcode: 3000, job: Engineer, email: [email protected], phoneno: 03234654 – Get Item API Endpoint: http://localhost:8080/item/person{id} (GET). – Get Item List API Endpoint: http://localhost:8080/persons/person (GET). – Update Item API Endpoint: http://localhost:8080/psersons/person (PUT). – Delete Item API Endpoint: http://localhost:8080/persons/person (DELETE). – Create Person API Endpoint: http://localhost:8080/person (POST). Request Body can be like: – Create Account API Endpoint: http://localhost:8080/account (POST). Request Body can be like: { acc number: 23456789 account name: J Smith, Balance: 300, date: date of today } There are three account types: Term Investment, Loan, Saving id: 01, account type: Term Investment, RMIT Cllassiification:: TTruussteedd Endpoint: http://localhost:8080/account/account{id} (GET). – Get Item API – Get Item List API 2.1 1. 2. 3. 4. 5. 6. 7. 8. Endpoint: http://localhost:8080/accounts/account (GET). – Update Item API Endpoint: http://localhost:8080/accounts/account (PUT). – Delete Item API Endpoint: http://localhost:8080/accounts /account (DELETE). Above end point are example, you can name your path as you like, but the body of the messages must follow the above suggestion. Tasks: Create a spring boot application through your IntelliJ idea, make local Git and a remote Github. Push your skeleton code (A simple spring boot application with created packages based on above requirements to start with, into Github. Add the id homy1 as admin to your Github. (2 marks doing all steps and first push) Create a Dev branch, then a feature branch for each class, and push your class into your feature branch, then merge it into the Dev branch when your feature is done. You should have a feature branch per class. (3 marks for branching practice) Implement person and account microservice based on scenario with local database ( 20 marks 10 for each services implemented properly) Add MySQL locally as your DB ( 5 marks) 3 unit-tests per controller ( 9 marks) Adding docker file and docker compose for each service and your db. Build, and run through CI. Your CI can have failures, but last build should be successful. ( 6 marks) Record yourself and test your app with Postman and show changes in database. Then explain your unit tests and Controller methods only through recording (1 minutes per method) Total recording should not be more than 6 minutes. Video is being used by marker for marking the student, no video means no mark, and you will receive any marks for tasks without recorded video. (8-10 minutes in total) RMIT Cllassiification:: TTruussteedd Hint 1: You may need two model classes for account services, one for account and another for account types. Hint 2: Follow below guides as alternative solutions https://rmit.instructure.com/courses/90756/discussion_topics/1798034 3 Learning Outcomes This assessment relates to the following learning outcomes of the course: utlilize various software engineering processes and their tools as required for best-practice development of software systems. plan, identify and apply processes, standards and tools for phases of a softwareengineering life cycle for a substantial software development project. 4 Plagiarism NOTE: Plagiarism is a very serious offence. Plagiarism is the presentation of the work, idea or creation of another person as though it is your own. It is a form of cheating and is a very serious academic offence that may leadto exclusion from the University. Plagiarised material can be drawn from, and presented in, written, graphic and visual form, including electronic data and oral presentations. Plagiarism occurs when the origin of the material used is not appropriately cited. Plagiarism includes the act of assisting or allowing another person to plagiarise or to copy my work. The penalty for plagiarised assignment work may include reduction of marks awarded forthat assignment, including to zero, or even failure of the course for a particularly serious case, for a first offence. Subsequent offences may involve heavier penalties, including thepotential for expulsion from the university for repeat offences. Please bear in mind that RMIT University uses plagiarism detection software to detect plagiarism and that all assignments will be tested using this software. See the RMIT website for more information about the university policies on Plagiarism and Academic Misconduct. RMIT Cllassiification:: TTruussteedd 5 Submission Instructions 1- On Microsoft word page, type your name and student number, then add your Github repository link for all tasks, you add readme for any documentations. 2- Also download a zip from file from your code. 3- Add your recorded file and document and zipped code into a folder and zip the folder. 4- Submit through Canvas.
Posted inUncategorized