TermBook

Inspiration

Our team agreed journaling makes us feel better. From stress relief, to self reflection, to improved ability to communicate and express ourselves - the benefits of journaling are endless. But it can be very hard for busy developers to remember to journal, even if it would greatly benefit their mental health.

What it does

Termbook is a complete journaling system to keep developers on the journaling journey. Each time you open your terminal - you will be prompted to enter a journal entry for the day (unless you already have). Our program will force you to write at least 50 words so you can unburden and reflect. You can then use a cloud based web app to view all your previous entries. You can use the github account you use every day with our service! We have fantatic docs and cross platform support so no matter who you are, you can get started journaling with us.

How we built it

We built the terminal aplication with Golang and the TUI framework bubbleTea. We built an api with golang to store the journals in a sqlite database and make them availble to our Next.js web app for easy viewing of your past journal entries. The web application was built with full user authentication and authorization in mind, as well as protected API routes for more security.

Accomplishments that we're proud of

We are proud of the beautiful user experience we've created both on the web and in the terminal. We want our software to establish the relaxing, fufilling atmosphere of journaling.

Challenges we ran into

One challenge we ran into was working with Golang time stamps across the various platforms we support (mac, linux, windows). In some cases, the time stamps wouldn't match and caused strange bugs. Another issue was setting up authentication and securing next.js routes. We also spent a lot of time making sure our styling was just right.

What's next for Termbook

We would like add features like a streak tracker and better tooling for searching and and filtering through journal entries.

Built With

Share this project:

Updates