Inspiration
Concentr8 has fills a void in the field of apps that serve to assist the users with concentration. Many apps, extensions, and other pieces of software exist that block off other websites, disable them, or close them after a period of time. Our team wanted to design a piece of software that didn't restrict the user from anywhere on the internet, but still achieved the goal of encouraging the user to stay focused and not get distracted.
What it does
Concentr8 is a negative reinforcement chrome extension that is designed to allow for freedom of the internet, while still including several mechanics that encourage the user to stay focused on the work at hand. The core mechanic of Concentr8 is it's dependence upon time. Over time, Concentr8 increases with what the program will do to take the user away from the websites that the user has blacklisted and, if the user opts in for the built in filtering system, the websites that the filtering system deems block-worthy.
How we built it
Concentr8 is built in a combination of HTML, CSS, JavaScript, TypeScript, and React. A background process listens for Chrome's tab change events and calculates the details of what graphics to display/sounds to play/etc. Whenever there is a change in state, Concentr8 relays it via Chrome's extension IPC system to Concentr8's front-end. The front-end is a React application injected into the web page being viewed by the user which connects to the IPC system and re-renders on state updates. The intensity of negative reinforcement is controlled by a timer in the background process, which triggers new behavior at certain milestones. Additionally, we have incorporated Chrome sync to save personal settings of the extension over different browsers signed in with the same account.
Challenges we ran into
Not all of our team was previously familiar with Typescript, so we helped each other come up-to-speed as necessary.
Injecting React into target web pages proved to be more challenging than expected (for example, we explored possibilities for isolating our injected components' styling from the rest of the target site).
Chrome's tab change event API was less intuitive than we had anticipated, and resolving subtle edge-cases required a significant time investment.
Accomplishments that we're proud of
Definitely something that we are proud of is our teamwork. Those people that had more experience in programming worked hard to catch up with the level of code that'd we'd be working with. For those of us that weren't up to par with the code at the beginning, we were the ones that came together to create the details of the project, write up this report, and make sure that a website was made for the extension.
What we learned
We learned a lot through this project. As a group, we learned a lot about the development process. As we have watched the project go through the different development stages, we have been able to test the project at the various stages and really watch it grow. For the people that didn't have as much coding experience, we were able to gain a lot of experience looking at the code that was written for this project and be able to assist in the coming versions of the project.
What's next for Concentr8
We want Concentr8 to include so many more features than what it is now. One of the biggest things that Concentr8 is going to include in it's next major update is going to be the addition of Twillio's API. We are seeking to make it possible to add phone numbers for people that the user wants to assist in holding them responsible for staying focused. The goal of this is to assist parents that want to hold their children accountable, or bosses that want to ensure productivity in the work place.

Log in or sign up for Devpost to join the conversation.