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` |  |  | > ❗ **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>
TaskNote
📋 Table of Contents
- 📝 About the Project
- ✨ Features
- 🚀 Tech Stack
- 🏗️ Architecture
- 🚀 Getting Started
- 🛠️ Development
- 🧪 Testing
- 📦 Deployment
- 🤝 Contributing
- 👨💻 Developer
- 📞 Contact
- 📄 License
📝 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:
#tagsupport 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
- Docker
- Docker Compose
- Task (
brew install go-task/npm install -g @go-task/cli) - Doppler CLI (
brew install dopplerhq/cli/doppler)
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
- Fork the Project on GitHub
- Clone your fork locally
git clone https://github.com/YOUR_USERNAME/tasknote.git - Create a feature branch
git checkout -b feature/amazing-feature - Make your changes and ensure they follow the project standards
- Run quality checks
bash tools/check-frontend.sh bash tools/check-backend.sh - Commit your changes
git commit -m 'Add some amazing feature' - Push to your fork
git push origin feature/amazing-feature - 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! ⭐