An AI-coded New Year's Resolution Tracker built with .NET 10.0
Resolute is a command-line application designed to help you track and maintain your New Year's resolutions throughout the year. With features like customizable reminders, progress check-ins, and detailed statistics, Resolute keeps you accountable and motivated to achieve your goals.
- Resolution Management: Create, view, edit, and manage your resolutions with detailed descriptions and categories
- Smart Reminders: Set up interval-based or specific date reminders to stay on track
- Progress Tracking: Regular check-ins to monitor your progress with status indicators (On Track, Struggling, Completed)
- Statistics & Reports: View detailed statistics about your resolutions, including completion rates and category breakdown
- Persistent Storage: All data is stored locally in JSON format
- .NET 10.0 SDK or later
-
Clone the repository:
git clone https://github.com/ardalis/Resolute.git cd Resolute -
Build the project:
dotnet build
-
Run the application:
dotnet run --project src/Resolute.Cli/Resolute.Cli.csproj
dotnet testWhen you start Resolute, you'll see the main menu with the following options:
- View All Resolutions - Browse all your resolutions with filters and details
- Add New Resolution - Create a new resolution with reminders
- Check In on Resolution - Log progress on your resolutions
- View Upcoming Reminders - See which resolutions need attention
- Statistics & Reports - View analytics about your progress
- Exit - Close the application
- Select Add New Resolution from the main menu
- Enter a title (e.g., "Exercise 3 times per week")
- Provide a detailed description
- Choose a category (Health, Career, Personal, Finance, Education, Relationships, Other)
- Optionally set a target completion date
- Configure reminder settings:
- Interval-based: Get reminded every N days
- Specific dates: Set exact dates for reminders
- Both: Combine interval and specific date reminders
- Select Check In on Resolution from the main menu
- Choose which resolution to check in on
- Select your status:
- On Track: Making good progress
- Struggling: Encountering difficulties
- Completed: Achieved this resolution!
- Add optional notes about your progress
The Statistics & Reports screen provides:
- Total number of resolutions
- Completion rate percentage
- Breakdown by category
- Active vs. completed resolutions
- Recent check-in activity
Resolutions are stored in a resolutions.json file in the application directory. The file is automatically created on first run and updated as you make changes.
Each resolution includes:
- Unique identifier (GUID)
- Title and description
- Category classification
- Creation and target dates
- Completion date (when applicable)
- Reminder settings (interval-based, specific dates, or both)
- Check-in history with dates, status, and notes
Resolute/
├── src/
│ └── Resolute.Cli/
│ ├── Models/ # Data models (Resolution, CheckIn, etc.)
│ ├── Services/ # Business logic (ResolutionManager, ReminderService, etc.)
│ ├── UI/ # Console UI screens
│ └── Program.cs # Application entry point
├── tests/
│ └── Resolute.UnitTests/
│ └── Models/ # Model tests
├── Directory.Build.props # Common build properties
├── Directory.Packages.props # Central package management
└── global.json # SDK version specification
- .NET 10.0 - Target framework
- C# 13 - Programming language
- xUnit - Testing framework
- TimeWarp.Nuru - Enhanced console UI framework
- System.Text.Json - JSON serialization
This is an AI-coded demonstration project. Feel free to fork and enhance it for your own use!
See LICENSE file for details.
Created by Steve "ardalis" Smith with AI assistance.