A personal productivity application for managing habits, tasks, and moments - helping you build a better life through mindful tracking.
- Create and manage both positive (good) and negative (bad) habits
- Daily check-in with notes and timestamps
- Set challenging goals with flexible comparison types (at least, at most, exactly)
- Track progress with detailed history and statistics
- Capture life moments with rich text content
- Attach media files (images, videos) with preview support
- Comment on moments for reflection and notes
- Infinite scroll for browsing historical entries
- Organize tasks into groups (Today, Scheduled, etc.)
- Set deadlines and reminders
- Track task completion status
- Quick task creation and management
- Secure JWT-based authentication
- Profile customization
- SMTP configuration for notifications
- Framework: React 19 with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- State Management: Zustand + TanStack React Query
- Routing: React Router 7
- UI Components: Radix UI primitives
- PWA Support: vite-plugin-pwa
- Framework: Spring Boot 3.5.7
- Language: Java 21
- Database: PostgreSQL
- Authentication: JWT
- File Storage: MinIO
- Database Migration: Flyway
serenique/
├── apps/
│ ├── api/ # Backend Spring Boot application
│ │ ├── src/main/java/
│ │ │ └── cc/serenique/api/
│ │ │ ├── common/ # Shared services (Email, MinIO)
│ │ │ ├── config/ # Configuration classes
│ │ │ ├── exception/ # Global exception handling
│ │ │ ├── modules/ # Feature modules
│ │ │ │ ├── habit/ # Habit tracking
│ │ │ │ ├── moment/ # Moment journaling
│ │ │ │ ├── task/ # Task management
│ │ │ │ └── user/ # User management
│ │ │ ├── response/ # API response wrappers
│ │ │ └── security/ # JWT authentication
│ │ └── src/main/resources/
│ │ └── db/migration/ # Flyway SQL migrations
│ └── web/ # Frontend React application
│ └── src/
│ ├── api/ # API client functions
│ ├── components/ # React components
│ │ ├── habit/ # Habit feature components
│ │ ├── moments/ # Moment feature components
│ │ ├── task/ # Task feature components
│ │ └── ui/ # Shared UI components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utility functions
│ ├── pages/ # Page components
│ ├── providers/ # Context providers
│ ├── stores/ # Zustand stores
│ └── types/ # TypeScript type definitions
└── docs/ # Documentation
- Java 21+
- Node.js 18+ (or Bun)
- PostgreSQL
- MinIO (for file storage)
-
Navigate to the API directory:
cd apps/api -
Configure
application.propertieswith your database and MinIO settings -
Run the application:
./mvnw spring-boot:run
-
Navigate to the web directory:
cd apps/web -
Install dependencies:
npm install # or bun install -
Start the development server:
npm run dev # or bun dev -
Open http://localhost:5173 in your browser
graph TD
subgraph Frontend
UI[User Interface]
Components[React Components]
Hooks[Custom Hooks]
API[API Clients]
end
subgraph Backend
Controller[REST Controllers]
Service[Business Logic]
Repository[Data Access]
Database[(PostgreSQL)]
end
UI --> Components
Components --> Hooks
Hooks --> API
API --> Controller
Controller --> Service
Service --> Repository
Repository --> Database
Auth[JWT Authentication] --> Controller
Minio[(MinIO)] --> Service
Flyway[Flyway Migrations] --> Database
This project is licensed under a Modified MIT License. Usage, modification, or distribution requires written authorization from the copyright holder.
See the LICENSE file for details.