A to-do list notification system helps users stay organized and on top of their tasks and responsibilities by providing timely reminders and alerts. This system is designed to assist individuals in managing their tasks, goals, and priorities more effectively.
This project was developed for the module CS5721 - Software Design, taught by Prof. J.J. Collins at the University of Limerick.
The project employed a microservices architecture having components such as API Gateway and Eureka Server and 2 Microservices. Users can create labels for lists such as Grocery, Today, Travel, etc. and add items to them using Factory Pattern.
I was responsible for the Priority Module using which Users can set Priority to an item such as High, Low, Medium, Special dynamically using Decorator Pattern, and Creating API Gateway using Spring Cloud Gateway and Eureka Server using Spring Cloud Netflix Library. Users get notified on email on due date and on todo completion using Observer Pattern. Application had User Authentication implemented using JWT token. Demonstrated Multiple Design Patterns such as Observer, Decorator, Command. Developed an Azure DevOps CI pipeline. Added Unit Testing using JUnit. Developed this team project for the Module CS5721 - Software Design. Learnt important skills such as conceptualising, designing, developing, testing, and deploying a software application written in Java 11 and Spring Boot. Learnt effective teamwork and collaboration from this project.
- week 3 - Getting Started
- week 4 - Requirements
- week 5 - Architecture
- week 6 - Analysis
- week 6 - Presentation (system Arch & Class Diagrams)
- week 7 - Coding Iteration 1: MVC & 1 use case, test cases
- week 8 - Coding Iteration 2: two more use cases and design patterns
- week 9 - Coding Iteration 3: other use cases and design patterns
- week 10 - Coding Iteration 4: Added Value
- week 11 - Over Run
- week 12 - Architecture and Design Recovery
- UML for class, activity, use case, system architecture, sequence, schema, and package diagrams
- SOLID Principles
- Design Patterns - Decorator, Observer, Command
- Demonstrate Software qualities of modularity, extensibility, and reusability
- Java 11
- Spring Boot
- Spring Security (JWT Authentication)
- JPA (Java Persistence API)
- Spring Cloud API Gateway
- Spring Cloud Netflix Eureka
- MySQL Database
- JUnit
- Postman
- Maven
- Azure DevOps CI Pipeline
- Sonar for code smells