Assignment 3
This assignment is a group assignment. The course management have created the groups and created a gitlab-group under ([https://gitlab.lnu.se/2dv013/student]) in this course group on Gitlab.lnu.se were you and your group members have access.
Assignment 3 (code 2203) is group assignment where the group submit it´s assignment by a "merge request" from the project repo in the team group.
The assignment
Your group is tasked with creating a cloud-native application of your choice. We encourage you to imagine and build something innovative and original. Here are some ideas to spark your creativity:
- AI-Powered Personal Assistant: An intelligent personal assistant that uses AI models for natural language processing to help users manage their schedules, send reminders, and perform other tasks.
- Home rentals platform: Homenest allows users to list, browse and rent properties. The platform leverages advanced search, AI-powered recommendations and real-time notifications to keep users updated on property status changes.
- Microblog platform: Microblog platform - read more here - litter.
- IoT plant care platform: PlantPulse is a cloud-native IoT platform designed for monitoring and nurturing plant health. The platform leverages advanced sensor integration and real-time alerts. PlantPulse includes features such as environmental condition tracking, automated watering schedules and a comprehensive dashboard for monitoring plant health metrics.
Essential Components:
Your project must include:
- Authentication and Authorization: Implement secure user authentication and authorization mechanisms to protect user data and manage access control.
- Database: To store and manage data efficiently.
- Backend: To handle the business logic and database interactions.
- Frontend: For user interface and experience.
- Communication Between Microservices: Demonstrate both synchronous (e.g., HTTP/REST API calls) and asynchronous communication (e.g., using event-driven architecture) between the microservices.
- Additionally there are some non-functional requirements to fullfil.
Report 1
Must be submitted by December 15th in the group wiki.
From this date forward, the URL submitted should always respond with an HTTP 200.
The wiki should contain:
- Link to start URL of the application
- Your deployment pipeline anatomy
- Continuous Delivery principles adopted
- Design
- User Interface Design: Create a Figma sketch for the application to illustrate the user interface and user experience design. Alternatives like PowerPoint sketches are also acceptable.
- Architectural overview of the system (UML diagram or drawing) (a separate design meeting will be held to discuss this prior to hand-in)
- Microservices
- Communication protocols and patterns (e.g., HTTP, queues)
- Data persistency
Report 2
Must be submitted by January 13th in the group wiki.
- Link to start URL of the application.
- Your deployment pipeline anatomy, incl. a reflection of the outcome
- Continuous Delivery principles adopted, incl. a reflection of the outcome
- Design, Up to date
- User Interface Design: Create a Figma sketch for the application to illustrate the user interface and user experience design. Alternatives like PowerPoint sketches are also acceptable. At this stage you can also include screenshots.
- Architectural overview of the system (UML or drawing) (separate design meeting will be held to discuss this prior to hand-in.)
- Microservices
- Communication protocols, patterns (queues, et.c.)
- Data persistency
- A Post mortem
- Title of project, authors, and date
- Abstract: Explain briefly and concisely what your report is about and what conclusions you have reached.
- Introduction and background: Describe the final product and purpose/goals of the project, methods, implementation/techniques, and other relevant information about what was done and how in the project. Keep to the facts and avoid expressing personal opinions. Consider that the reader may have a very different background and may not have much experience with software development, so refer to widely available sources as needed. Include one or more images showing important parts of the product. A brief description of the overall architecture may also be included here.
- Positive experiences: Describe what you consider to have gone particularly well in your project and your analysis of why it was successful and how you can replicate this success in future projects.
- Negative experiences: Describe what you consider to have gone poorly in your project and your analysis of why it was unsuccessful and how you can avoid this in future projects.
- Summary: Bring your report together and draw conclusions from your experiences and lessons learned. Look ahead and see potential for development for both yourself and your product.
Final delivery
The project is submitted through a final delivery. This final delivery basically means that you create a "merge request" on the project you were assigned at the start of the course and which contains your Wiki.
Instructions:
- Navigate to the project named "Our Awesome Group Project" in your group on Gitlab.
- Create a MR from your 'main' branch to your 'lnu/submit' branch.
- Use the title "Submission, Final Delivery"
- Carefully fill in the description. (see below)
- Select the Milestone to which your final delivery is intended. (Important!)
- Do not close your Merge Request. This is considered a withdrawn submission.
- You can edit your "merge request" after it has been submitted. For example, test that all links work and fix those that are not correct.
You can also give feedback to the course staff by writing a comment to the course staff. Do this if you make any changes after the deadline.