renovate-botandrmcampos 294e1b7a6a
Backend CD / build (push) Successful in 4m2s
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.7.0 (#10)
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [com.puppycrawl.tools:checkstyle](https://checkstyle.org/) ([source](https://github.com/checkstyle/checkstyle)) | `13.3.0` → `13.7.0` | ![age](https://developer.mend.io/api/mc/badges/age/maven/com.puppycrawl.tools:checkstyle/13.7.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.puppycrawl.tools:checkstyle/13.3.0/13.7.0?slim=true) |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI1Mi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

---------

Co-authored-by: Ricardo Campos <ricardompcampos@gmail.com>
Reviewed-on: #10
Reviewed-by: Ricardo Campos <ricardompcampos@gmail.com>
Co-authored-by: Renovate Bot <renovate-bot@lightroasted.vps-kinghost.net>
2026-07-22 18:47:58 +00:00

TaskNote

License: GPL v3 Frontend CI Backend CI Deploy

📋 Table of Contents

📝 About the Project

TaskNote is a full-stack productivity application designed for managing tasks and notes with simplicity and effectiveness in mind. Originally created to address personal productivity needs, it has evolved into a comprehensive, open-source solution featuring a modern tech stack and enterprise-grade architecture.

The project was born from a month-long technical challenge and has since grown to include robust authentication, internationalization support, responsive design, and comprehensive testing coverage.

Features

Current Features

  • Task Management: Create, edit, delete, and organize TODO items with due dates and priority levels
  • Note Taking: Rich text notes with Markdown support for better formatting
  • Smart Search: Full-text search across tasks and notes with real-time filtering
  • User Authentication: Secure JWT-based authentication with automatic token refresh
  • Internationalization: Multi-language support (English, Portuguese, Spanish, Russian)
  • Responsive Design: Mobile-first approach with Bootstrap 5 and dark/light theme support
  • Data Visualization: Task completion charts and productivity analytics
  • File Attachments: URL attachments for tasks and notes
  • Tagging System: #tag support for better organization
  • Mobile App: Native mobile applications for iOS and Android with PWA plugin
  • Collaboration: Share tasks and notes with other users

Upcoming Features

  • Advanced Filters: Enhanced search with date ranges, priority levels, and status filters
  • Notifications: Email and push notifications for due dates and reminders

🚀 Tech Stack

Frontend (React & TypeScript)

  • Framework: React 19 with TypeScript for type safety
  • Build Tool: Vite for fast development and optimized production builds
  • Testing: Vitest with React Testing Library and comprehensive coverage reporting
  • Styling: Bootstrap 5 with custom SCSS and theme support
  • State Management: React Context API for authentication and sidebar state
  • Routing: React Router 7 with dynamic route configuration
  • Internationalization: i18next with automatic language detection
  • API Client: Centralized API service with automatic authentication headers

Backend (Java & Spring Boot)

  • Framework: Spring Boot 4.x.x with Java 25
  • Security: Spring Security with JWT authentication and refresh tokens
  • Database: PostgreSQL with JPA/Hibernate ORM
  • Migration: Flyway for database schema versioning
  • Documentation: OpenAPI/Swagger UI for API documentation
  • Testing: JUnit with separate unit and integration test suites
  • Code Quality: Checkstyle, JaCoCo coverage (75% minimum), Maven Enforcer
  • Build Options: Traditional JAR or GraalVM native image compilation

Database & Infrastructure

  • Database: PostgreSQL with optimized indexes and constraints
  • Containerization: Docker and Docker Compose for development environment
  • Web Server: Caddy for reverse proxy and SSL termination
  • CI/CD: GitHub Actions with automated testing and quality gates

🏗️ Architecture

Monorepo Structure

tasknote/
├── client/          # React TypeScript frontend
├── server/          # Java Spring Boot REST API
├── tools/           # Development and deployment scripts
└── docker-compose.yml

Frontend Architecture

  • Component Structure: Modular components with TypeScript interfaces
  • Authentication Flow: JWT tokens with 2-minute refresh intervals
  • Theme System: CSS custom properties for dark/light mode switching
  • Responsive Layout: Mobile-first design with sidebar navigation
  • Error Handling: Centralized error boundary and user feedback

Backend Architecture

  • RESTful API: Clean REST endpoints with proper HTTP status codes
  • Security Layer: JWT validation, CORS configuration, and input validation
  • Service Layer: Business logic separation with transaction management
  • Repository Pattern: Data access abstraction with custom queries
  • Email Service: Template-based email notifications for user actions

🚀 Getting Started

Prerequisites

Setup

# 1. Authenticate with Doppler and link the project
doppler login
doppler setup   # uses doppler.yaml to link to the shell-whats project

Running locally

task dev-run

This exports the public vars from the dev_tokens Doppler config and starts the server in watch mode with secrets injected from dev_secrets. No .env file needed.

Building the Docker images

# Build the backend
task docker-build-api

# Build the frontend
task docker-build-web

🧪 Testing & Checks

Frontend Testing

./tools/check-frontend.sh

Backend Testing

./tools/check-backend.sh

🤝 Contributing

We welcome contributions from the community! This project follows the Fork & Merge workflow.

How to Contribute

  1. Fork the Project on GitHub
  2. Clone your fork locally
    git clone https://github.com/YOUR_USERNAME/tasknote.git
    
  3. Create a feature branch
    git checkout -b feature/amazing-feature
    
  4. Make your changes and ensure they follow the project standards
  5. Run quality checks
    bash tools/check-frontend.sh
    bash tools/check-backend.sh
    
  6. Commit your changes
    git commit -m 'Add some amazing feature'
    
  7. Push to your fork
    git push origin feature/amazing-feature
    
  8. Open a Pull Request with a detailed description

Development Guidelines

  • Follow existing code conventions and patterns
  • Write tests for new functionality
  • Update documentation when necessary
  • Ensure all quality checks pass
  • Keep commits focused and descriptive

For detailed setup instructions and development workflows, see CONTRIBUTING.md.

📄 License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

What this means:

  • Freedom to use: Use the software for any purpose
  • Freedom to study: Access and modify the source code
  • Freedom to share: Distribute copies of the software
  • Freedom to improve: Distribute modified versions

Copyleft: Any derivative work must also be open source under GPL v3.0


Star this repository if you find it helpful!

S
Description
[k3s] Java fullstack REST+App for managing tasks and notes
Readme GPL-3.0
17 MiB
Languages
TypeScript 43.8%
Java 38.1%
HTML 10.8%
SCSS 2.1%
HCL 1.7%
Other 3.4%