https://github.com/datumbrain/tdd-in-legacy-codebase
Learning TDD in Legacy Code
https://github.com/datumbrain/tdd-in-legacy-codebase
Last synced: 4 months ago
JSON representation
Learning TDD in Legacy Code
- Host: GitHub
- URL: https://github.com/datumbrain/tdd-in-legacy-codebase
- Owner: datumbrain
- Created: 2024-09-27T06:53:34.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-09T09:07:36.000Z (over 1 year ago)
- Last Synced: 2025-08-31T16:04:17.051Z (9 months ago)
- Size: 690 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Tasker App - TDD in Legacy Code Transformation
## Pipeline Dashboard
Pipeline dashboard for sample app we will create to transform legacy codebase into testable one
| Component | Commit Stage | UAT Release Stage | Production Release Stage |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| Tasker UI | [](https://github.com/naumanzchaudhry/tasker-ui/actions/workflows/ci.yml) |  |  |
| Tasker API | [](https://github.com/naumanzchaudhry/tasker-api/actions/workflows/ci.yml) |  |  |
## Context & Purpose
I found [Valentina](https://www.linkedin.com/in/valentinajemuovic/) sharing her thoughts & process on how we can transform legacy codebase into a testable one. And eventually use TDD to gain confidence in software delivery
She is writing a series of articles at [Optivem](https://journal.optivem.com/) which will guide the readers through the entire process. The purpose is to learn that process.
Checkout [Complete Series Outline](https://substack.com/home/post/p-149666874) to understand each stage and it's sub processes
## Relevant Projects
1. [Tasker UI](https://github.com/naumanzchaudhry/tasker-ui)
2. [Tasker API](https://github.com/naumanzchaudhry/tasker-api)
3. [Acceptance Tests](https://github.com/naumanzchaudhry/tasker-acceptance-tests)
## Todo Sample App Features
### 1. User Authentication
- Sign up and log in with JWT-based authentication.
- Auto-redirect logged-in users to the dashboard.
- Password hashing and token management.
- Logout
### 2. Task Management
- Create, view, and delete personal todos.
- Each user only sees their own tasks.
### 3. Data Storage
- Uses PostgreSQL via Prisma ORM for database management.
### 4. Error Handling
- Covers common edge cases (e.g., invalid input, authentication errors).
- Clear user feedback for errors.
### 5. [Frontend](https://github.com/naumanzchaudhry/tasker-ui)
- Built with Vue 3 and Pinia for state management.
- Uses the Composition API and styled with Shadcn.
- Axios automatically sets auth tokens for API requests.
### 6. [Backend](https://github.com/naumanzchaudhry/tasker-ui)
- Built with Express.js for API endpoints.
- Prisma ORM for database operations.
- Nodemon for auto-reloading in development.
### Contributors
- [Muaviya](https://github.com/MuaviyaImran)
- [Nauman](https://github.com/naumanzchaudhry)