Skip to content

Microservice-based public transit ticketing app. Software System Design course at WUST 🎓

Notifications You must be signed in to change notification settings

PWR-ACS-SE-24/SoftwareSystemDesign

Repository files navigation

JakPrzyjade 🎟️ (Software System Design)

JakPrzyjade is a microservice-based public transit ticketing app designed and implemented as part of the Software System Design course at the Wrocław University of Science and Technology. It consists of a set of services that handle various aspects of public transport ticketing, such as user accounts, ticket purchases, and payment processing. The project's aim and scope were defined, followed by the specification of functional and non-functional requirements, as well as business rules. The graphical user interface of the system was designed, after which the system architecture was developed, incorporating various architectural mechanisms, design patterns, and technologies. The system was implemented in Java and TypeScript, and subsequently deployed to the AWS cloud.

JakPrzyjade System Context Diagram

JakPrzyjade Team

@mlodybercik

TypeScript

Przemysław Barcicki

@tchojnacki

TypeScript

Tomasz Chojnacki
@mlodybercik @tchojnacki
Logistics, DevOps Accounts

@piterek130

Java

Piotr Kot

@jakubzehner

Java

Jakub Zehner
@piterek130 @jakubzehner
Payment, Gateway Tickets

Repository 🗃️

  • /.github/workflows - contains GitHub Actions workflows for CI/CD
  • /documentation - contains all documentation related to the project
    • /adrs - contains architectural decision records (ADRs)
    • /course - documentation required by the course curriculum (in Polish)
    • /contracts.md - contains contracts respected by all microservices
    • /system-parts.md - contains the responsibility breakdown of the system
  • /implementation - contains subfolders with the implementation of different microservices
  • /infrastructure - contains infrastructure-related files, such as Terraform scripts

Tools 🛠️

Documentation Figma, UML, OpenAPI, Markdown, draw.io, Mermaid, ATAM
Implementation Java, Spring Boot, Lombok, MapStruct, TypeScript, Hono, NestJS, RxJS, MikroORM, Deno, Node.js, PostgreSQL, SQL, REST, JWT
Testing Jest, JUnit, Cypress, Testcontainers, Grafana k6, OWASP ZAP
Deployment AWS (EKS, ECR, RDS, SQS, SES, VPC, Lambda), Kubernetes, Docker, Terraform, GitHub Actions
Other Git, Agile (Scrum), GitHub, VSCode

Stages 🚦

E1: Business modeling, specification, and requirements analysis

E2: System architecture definition

E3: Implementation

About

Microservice-based public transit ticketing app. Software System Design course at WUST 🎓

Topics

Resources

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •