Inspiration

We wanted to create something that could help students study more effectively by focusing on both their environment and their behavior. Many students struggle with distractions, poor lighting, uncomfortable temperatures, inactivity, and ineffective study habits without even realizing it. We thought it would be interesting to build a project that could monitor both the physical study space and the user's screen activity to encourage better productivity.

What it does

The project is split into two connected subsystems.

Subsystem 1 focuses on the study environment using hardware such as an Arduino Uno and Rubik Pi. It monitors room temperature and light levels and can provide feedback through LEDs or recommendations if the room is too dark, too hot, or too cold.

Subsystem 2 focuses on study behavior on the computer. It monitors active windows, tracks keywords and topics from what is on screen, detects rapid tab switching, detects inactivity, and provides reminders to help the user stay focused. It can also generate summaries of study sessions and export important keywords collected during the session.

How we built it

For Subsystem 1, we used an Arduino Uno with temperature and light sensors. The Arduino reads sensor values and sends them to the connected system. LEDs were used to visually indicate different environmental conditions.

For Subsystem 2, we built a Python desktop application with a GUI. The system monitors active windows, tracks time spent on different applications, extracts keywords from visible text, and generates reports at the end of the session. We used Python libraries for window monitoring, clipboard tracking, screenshots, notifications, and GUI design.

Challenges we ran into

One of the biggest challenges was balancing how often the monitoring system should run. If it ran too slowly, it could miss distractions or important changes. If it ran too often, it could slow down the computer or cause popups to freeze.

Another challenge was keyword extraction. At first, the system would include too many unimportant words, which made the results less useful. We had to improve the filtering logic to better identify meaningful study topics.

We also had to figure out how to organize the project into two subsystems that could eventually work together in one final product.

Accomplishments that we're proud of

We are proud that we were able to successfully build two different subsystems that focus on different aspects of studying. We created a working hardware setup that can detect room conditions, and we also built a software assistant that can monitor user behavior and generate useful study information.

We are also proud that we created a project that could realistically be expanded into a full productivity system in the future.

What we learned

We learned a lot about combining hardware and software into one project. On the hardware side, we learned more about working with sensors, Arduino programming, and serial communication. On the software side, we learned more about GUI development, window monitoring, multithreading, notifications, and managing system performance.

We also learned how important it is to make monitoring tools lightweight so they do not negatively affect the user's computer while still collecting useful information.

What's next for Power of Productivity

The next step is to fully connect both subsystems so that the AI study assistant can use the hardware data in real time. For example, if the room is too dark or too warm, the system could immediately recommend changes while also considering the user's focus level and study behavior.

We also want to improve the keyword extraction system, add long-term study analytics, and potentially include more sensors such as sound level or posture tracking.

Built With

  • arduino-c/c++
  • arduino-uno
  • arduino101
  • git
  • github
  • light-sensor
  • llama-3.1-8b
  • ollama
  • pyqt
  • pyside6
  • python
  • rubik-pi
  • serial-communication
  • temperature-sensor
  • vs
Share this project:

Updates