This project is a Go-based command-line tool designed to help you stay on track with your daily goal of solving LeetCode problems. It serves as an interactive and persistent to-do list that annoyingly reminds you to complete at least 10 LeetCode problems every day for 21 days. The application is intended to run continuously on your Mac, with the only way to close it being a force quit.
- Daily Task List: Automatically initializes with 10 blank tasks each day.
- Persistent Tracking: Tracks your progress over time and saves your completed tasks in a database.
- Interactive UI: Provides a simple command-line interface to add tasks, view your progress, and see past completions.
- Annoying Reminders: Runs persistently and continuously reminds you of your daily goals.
- Go: Ensure that Go is installed on your system. You can download it from Go's official website.
- SQLite: The project uses SQLite for persistent storage.
-
Clone the Repository:
git clone https://github.com/1to3for5vi7ate9x/Todo-everyday.git cd Todo-everyday
-
Initialize and Update Dependencies:
Initialize the Go module and install any dependencies:
go mod tidy
-
Build the Application:
Build the application executable:
go build -o todo_app ./cmd/Todo/main.go
To start the application, run the built executable:
./todo_app
Once running, the application will display a command prompt where you can interact with your daily tasks. Available commands:
- Add a Task:
add <task number> <description>
- View Past Tasks:
view
- Quit Forcefully: Close the terminal window or force quit.
Example:
Commands: add <task number> <description> | view (to view past tasks) | q (to quit forcefully)
add 1 "Two Sum: Solve using HashMap"
The application uses SQLite to keep track of all tasks you've completed. The database file is stored in the project directory. To view all past completed tasks, use the view
command within the application.
Todo-everyday/
├── cmd/
│ └── Todo/
│ └── main.go # Main entry point of the application
├── pkg/
│ ├── config/ # Configuration management
│ ├── tasks/ # Task management and logic
│ ├── ui/ # User interface and command handling
│ └── db/ # Database interactions
├── internal/
│ └── reminder/ # Reminder service logic
├── go.mod # Go module file
├── README.md # Project README file
└── .gitignore # Git ignore file
Feel free to fork this project, submit issues, and send pull requests. Your contributions are highly appreciated!
This project is open-source and available under the MIT License.
For any questions or suggestions, please reach out to ankitc@krates.ai.
Happy coding and stay on top of your LeetCode goals!