Tasky is a full-stack task management platform designed to help teams and individuals organize, track, and complete their work efficiently. It provides a modern UI, secure authentication, and a cloud-ready backend — all built within a monorepo architecture.
- 🔐 Authentication – JWT-based login & registration (Spring Security)
- 🧾 Boards & Tasks – Create task boards and manage tasks with CRUD operations
- 🗑️ Soft Delete – Tasks and boards are never lost, only hidden
- 💌 Email Reset – Forgot password flow via email tokens
- ☁️ CI/CD – Automated build & deploy pipeline with GitHub Actions
- 🐳 Dockerized – Local dev and cloud environments are containerized
- 🌐 Cloud Run Ready – Backend deploys to Google Cloud Run; frontend to GitHub Pages
Layer | Technology | Description |
---|---|---|
Frontend | React 18, Vite, MUI | Single-page app with Material Design components |
Backend | Java 25, Spring Boot 3.5 | RESTful API and authentication services |
Database | PostgreSQL | Persistent relational storage |
Migrations | Flyway | Versioned schema migrations |
Security | Spring Security + JWT | Authentication and authorization |
DevOps | Docker, Docker Compose | Environment standardization |
CI/CD | GitHub Actions | Continuous integration and deployment |
Cloud | Google Cloud Run, GitHub Pages | Production-ready hosting |
task-manager/
├── backend/ # Spring Boot application
│ ├── src/
│ ├── pom.xml
│ └── Dockerfile
│
├── frontend/ # React + Vite + MUI application
│ ├── src/
│ ├── package.json
│ └── vite.config.js
│
├── docker-compose.local.yml
├── docker-compose.cloud.yml
├── .github/
│ └── workflows/
│ ├── ci-tests.yml
│ ├── ci-static-analysis.yml
│ └── cd-deploy.yml
│
├── .env.dist
├── .gitignore
└── README.md
Make sure the following are installed:
git clone https://github.com/m01-project-devs/task-manager.git
cd task-manager
Duplicate the .env.dist
file and fill in real values:
cp .env.dist .env
Then, inside /frontend/.env.dist
:
VITE_API_BASE_URL=http://localhost:8080/api
docker-compose -f docker-compose.local.yml up --build
Backend:
cd backend
./mvnw spring-boot:run
Frontend:
cd frontend
npm install
npm run dev
Access app: http://localhost:3000
GitHub Actions automates the following:
-
ci-tests.yml
– Runs tests on pull requests tomain
-
ci-static-analysis.yml
– Runs SonarCloud / code quality checks -
cd-deploy.yml
– On merge to main:- Builds Docker image
- Deploys backend to Cloud Run
- Deploys frontend to GitHub Pages
Secrets used:
GCP_SA_KEY
,DB_URL
,DB_USER
,DB_PASS
,JWT_SECRET
- Backend: JUnit 5 + Mockito
- Frontend: Jest + React Testing Library
- Static Analysis: SonarCloud
- Code Coverage Goal: ≥70% core modules
This project uses a simple branching model:
- All work is done in feature branches.
- Merge requests (Pull Requests) go directly into main.
- CI/CD automatically validates and deploys after merge.
git checkout -b feature/add-task-endpoint
# make changes
git add .
git commit -m "feat(api): add task creation endpoint"
git push origin feature/add-task-endpoint
Then open a Pull Request into main
.
⚠️ Direct pushes tomain
are disabled — all changes must come through a PR.
Contributions are welcome! Please read the CONTRIBUTING.md file for branch, PR, and coding standards.
Name | Role |
---|---|
Yeager Ereren | Backend Developer / Maintainer |
Team Members | Frontend & DevOps |
MIT License – see LICENSE
for details.