OFF THE GRID: How I made productivity website to improve my focus

Temesgen DemekeTemesgen Demeke
7 min read

Off the Grid: Focus and Productivity

Project Purpose: The Off the Grid project is a website designed to help people improve their focus and productivity using the Pomodoro Technique and to-do lists.

Team: This project was a solo effort by me, Temesgen Demeke.

Timeline: The development timeline would depend on the complexity of the features you envision. However, a basic website with a Pomodoro timer and to-do list functionality could be built in a few weeks.

Target Audience: Off the Grid is aimed at anyone who wants to improve their focus and get more done. This includes students, professionals, and anyone who feels overwhelmed by tasks.

My Focus: As the sole developer, I would focus on creating a user-friendly website with the following functionalities:

  • Pomodoro Timer: A customizable timer that allows users to set work intervals and break periods based on the Pomodoro Technique.

  • To-Do List: A feature to create, manage, and track tasks. Ideally, this would integrate with the Pomodoro timer to help users prioritize tasks efficiently.

  • Simple and Clean Design: A user interface that is easy to navigate and minimizes distractions, promoting focus.

Further Development: Depending on time and resources, the Off the Grid project could be expanded to include features like:

  • Progress Tracking: Charts and graphs to visualize user progress and build motivation.

  • Task Categories: Allow users to categorize tasks for better organization.

  • Collaboration Tools: Enable users to share to-do lists or work on projects together (if applicable).

The Neverending To-Do List

For as long as I can remember, I've been a bit of a list maker. Every day started with a fresh page filled with tasks, big and small. But somewhere between the scribbles of "school assignment" and "finish coding project," focus would vanish. I'd find myself checking social media "for a quick break," only to resurface an hour later with a to-do list untouched and a growing sense of overwhelm.

This cycle of good intentions and scattered productivity gnawed at me. I tried different strategies: color-coded lists, fancy planners, and even productivity apps with flashy badges and reminders. While they offered a temporary fix, the cycle inevitably repeated.

Then, I stumbled upon the Pomodoro Technique. The idea of working in focused bursts with short breaks resonated deeply. It felt like a way to outsmart my scattered brain. But the existing apps seemed clunky, and integrating them with my to-do list felt like another hurdle.

That's when the idea for "Off the Grid" sparked. I envisioned a website, clean and simple, that combined the power of the Pomodoro Technique with a straightforward to-do list. A tool built for focus, by someone who desperately needed it.

"Off the Grid" became more than just a project; it was a promise to myself. A promise to reclaim my focus, one Pomodoro cycle at a time. And maybe, in building this tool, I could help others escape the tyranny of the neverending to-do list and rediscover the joy of getting things done.

On the front end, I opted for React.js in conjunction with Tailwind CSS. React's component-based structure allows for building reusable UI elements and managing complex interactions, which is ideal for a dynamic to-do list and timer functionality. Tailwind CSS provides pre-built utility classes, streamlining the styling process and ensuring a clean, consistent look across the website. This combination allows me to focus on core functionality without getting bogged down in custom CSS.

For the backend, I chose Flask, a lightweight Python web framework. Flask offers a good balance between flexibility and ease of use, perfect for this project's scale. It allows me to handle user interactions, manage data persistence, and integrate with the database.

Finally, I selected PostgreSQL as the database solution. PostgreSQL is a powerful and reliable open-source database that can efficiently store and manage the to-do list entries, user information, and potentially other project data as it grows in features.

features

  • Customizable Pomodoro Timertodo list

  • Functional To-Do List

  • Inspirational Quote

In the "Off the Grid" project's frontend development using React, I wanted to make the Pomodoro timer settings (work interval and break duration) accessible across multiple components. Traditionally, this would involve passing these props down from the parent component to child components, a process known as prop drilling. As the component tree grew deeper, managing prop drilling became cumbersome and error-prone.

I needed a way to make the Pomodoro timer settings globally accessible throughout the React application without resorting to excessive prop drilling.

I researched alternative approaches and decided to implement React Context API. This involved creating a context provider component at the top of the component tree that holds the Pomodoro timer state (work interval and break duration). Child components can then access this state using the useContext hook, eliminating the need to pass props down through multiple levels.

By using React Context API, I successfully addressed the prop drilling challenge. This approach improved code maintainability and readability. Changes to the Pomodoro settings only need to be made in the context provider, ensuring consistent values across all components. Additionally, it simplified the codebase, making it easier to reason about data flow and component interactions.

This is just one example of the technical challenges encountered during development.

The "Off the Grid" project wasn't just about building a website; it was a journey of learning and development. As I look back, here are some key takeaways that will shape my future as an engineer:

1. The Power of Learning While Building:

This project solidified my belief in the effectiveness of learning and building simultaneously. Textbooks and tutorials are valuable resources, but there's a unique power in applying that knowledge to a real-world project. While building "Off the Grid," I encountered challenges that traditional learning methods wouldn't have fully prepared me for. For instance, grappling with prop drilling in React forced me to delve deeper into component communication strategies and ultimately led to the implementation of React Context. This hands-on experience solidified my understanding of these concepts in a way that passive learning simply couldn't.

2. Deep Learning vs. Surface-Level Learning:

The project also highlighted the importance of deep learning over surface-level understanding. Initially, I might have been tempted to adopt a framework like Django or a pre-built UI library to expedite development. However, taking the time to understand the underlying technologies – React, Flask, and PostgreSQL – proved invaluable. While it took longer initially, this deeper grasp allowed me to make informed decisions about the project's architecture and troubleshoot complexities more effectively.

3. Adaptability and Resourcefulness:

Software development is rarely a smooth ride. During the project, I encountered challenges like integrating Flask-SQLAlchemy with the PostgreSQL database. These hurdles demanded adaptability and resourcefulness. I had to delve into online forums, and documentation, and potentially reach out to online communities to find solutions. This process honed my research and problem-solving skills, valuable assets for any engineer.

4. Self-Discovery as an Engineer:

"Off the Grid" helped me discover my strengths and weaknesses as an engineer. I developed a newfound appreciation for clean code and well-structured projects. The project also highlighted areas for improvement, such as time management and the need for better unit testing practices. This self-awareness will guide my future learning and development as I strive to become a more well-rounded engineer.

5. Confirmation: Independent Learning is Key:

Coming into this project, I believed that independent learning was crucial for an engineer's growth. This project solidified that belief. While online resources and communities can be helpful, the ability to research, troubleshoot, and experiment independently is essential for success. "Off the Grid" provided a platform to hone these skills, and I'm confident they will continue to serve me well as I navigate my engineering path.

In conclusion, "Off the Grid" went beyond being a productivity tool. It was a testament to the power of learning by doing and a springboard for my growth as an engineer. The project instilled in me the value of deep learning, adaptability, and a commitment to independent learning – all qualities I'll carry forward with me in my future endeavors.

check out

GitHub: https://github.com/Temesgendemeke/off-the-grid

off-the-grid: https://off-the-grid-frontend.onrender.com/

LinkedIn: https://www.linkedin.com/in/temesgen-demeke

0
Subscribe to my newsletter

Read articles from Temesgen Demeke directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Temesgen Demeke
Temesgen Demeke