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 Team | |||
---|---|---|---|
Przemysław Barcicki | Tomasz Chojnacki | ||
@mlodybercik | @tchojnacki | ||
Logistics, DevOps | Accounts | ||
Piotr Kot | Jakub Zehner | ||
@piterek130 | @jakubzehner | ||
Payment, Gateway | Tickets |
/.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
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 |
- Full documentation (in Polish): Wyniki etapu I: Modelowanie biznesowe, specyfikacja i analiza wymagań
- Full documentation (in Polish): Wyniki etapu II: Definicja architektury systemu
- Full documentation (in Polish): Wyniki etapu III: Implementacja