DEV Community

Dmitry
Dmitry

Posted on

🌱TinyHabits with Obsidian Sync and Rewards!🌿🚀🏆

This is a submission for the GitHub Copilot Challenge : New Beginnings

What I Built

A very basic implementation of the famous "Atomic Habits" approach. In today's fast-paced world, forming lasting habits can often feel overwhelming. That's where the concept of "Tiny Habits" comes in—starting small to build lasting changes. My project focuses on simplifying the habit formation process through an easy-to-use tool that encourages consistent progress and positive reinforcement.

Demo

Image description

Repo

TinyHabits

Overview

TinyHabits is a project designed to help users build and maintain small, manageable habits that can lead to significant personal growth over time.

Features

  • Track daily habits
  • Set reminders for habits
  • View progress over time
  • Customize habit categories

Installation

To install TinyHabits, follow these steps:

  1. Clone the repository:
    git clone https://github.com/yourusername/TinyHabits.git
    Enter fullscreen mode Exit fullscreen mode
  2. Navigate to the project directory:
    cd TinyHabits
    Enter fullscreen mode Exit fullscreen mode
  3. Install the dependencies:
    npm install
    Enter fullscreen mode Exit fullscreen mode

Usage

To start the application, run:

npm start
Enter fullscreen mode Exit fullscreen mode

License

This project is licensed under the MIT License. See the LICENSE file for details.




Copilot Experience

During the development of the Tiny Habits project, I made extensive use of GitHub Copilot to streamline my workflow and enhance productivity. Here's how Copilot assisted me throughout the process:

Code Autocomplete and Suggestions
As I started coding, Copilot's autocomplete feature saved me a lot of time. It suggested variable names, function calls, and even complete code snippets based on the context. This helped reduce typos and ensured that my code remained consistent, particularly when handling repetitive tasks like syncing with Obsidian or implementing the reward system.

Generating Code Snippets
Whenever I needed to implement specific functionality, I described it in natural language, and Copilot quickly generated the relevant code. For example, when setting up the habit tracking logic, Copilot helped me by generating code for adding new habits and setting up a reward mechanism based on simple descriptions.

Refactoring and Code Improvement
Copilot was invaluable in suggesting improvements and optimizations for my code. Whether it was identifying potential bugs or suggesting better ways to structure the reward system, it acted as a helpful code review tool, helping me refine my code to be more efficient and maintainable.

Contextual Understanding
Copilot demonstrated a strong understanding of the project’s requirements, especially with the sync functionality for Obsidian. It suggested appropriate data structures and methods for handling synchronization, ensuring that the integration was smooth and aligned with my project goals.

Debugging and Troubleshooting
When I ran into issues with the syncing feature or the reward system, Copilot quickly provided suggestions for troubleshooting and resolving errors. It helped me address bugs in a fraction of the time, offering solutions and debugging tips that were directly relevant to my project.

UI and User Experience
As a backend developer, I found UI design to be a challenge, but Copilot made it much easier. For instance, when creating the habit input forms, I described the layout and styling preferences, and Copilot generated the HTML and CSS code using Tailwind utility classes. This allowed me to focus more on the app’s logic while still delivering a polished user interface.

GitHub Models

I haven't use any GitHub models

Conclusion

I really enjoyed a lot the resulting prototype I managed to get within almost 4 hours

Top comments (0)