As we are both high school students, we have tried to find as many ways as possible to reduce our workload by effective managing our time. One method we have tried to effectively do this is using productivity apps. However, we have found that many productivity apps do not have a feature that allows us to set personal goals, or track our consistency in not only setting these goals, but meeting them as well. We find that often times the data put into productivity apps are wasted because it can be analyzed to help people improve their productivity. Thus, we wanted to create an app that uses our users' inputs effectively by creating analytics and from these analytics, let the user know how they can improve their time management and goal setting skills.
The inspiration for our name comes from a Japanese word ("Kaizen") that models our platform’s vision: creating continuous self-improvement and the idea that small improvements in our everyday habits can lead to significant long-term happiness and reduction of stress.
What it does
AchieveKaizen is a platform that strives to help users improve productivity through the idea of self-improvement and setting goals. The website is set-up as if it was marketing the platform to everyday people. This includes sections such as “about” that explains its features and its major advantages over its competitors in a relatively saturated market. In addition, the website features testimonials to see what other individuals think about our platform. At the bottom of the screen, there is a YouTube button, as a way of integrating social media onto the platform. Social media is a major part of marketing as a business by engaging with individuals, especially to young people whom are our major target market, this will increase the chances of users signing up to use our service.
Moreover, we also have a login/signup page where users can join our platform and continue using our website. Within the website itself, we have features that allow individuals to set personal goals and activities (where they are able to allocate time for certain tasks). Using this information, we are able to track streaks for both of this information to track consistency. This allows users to self-reflect and see whether their goals are realistic.
How we built it
For the backend, we used MongoDB (Atlas) to store our user authentication as well as their activity logs, and used the Mongoose library to communicate with the database. To communicate the data, we used bcryptjs and JWT to encrypt and sign our authentication tokens. The front and back ends were served on express.js.
Challenges we ran into
Since this was our first hackathon and our first time working on a team project, there were many hurdles we had to overcome. Additionally, since it was an online hackathon, it was more difficult to coordinate because we were not always available at the same time. Some additional challenges we faced:
- Deploying on Heroku since the file structure necessary to be able to serve it on Heroku was vastly different than what we had already established. The fact that we were working as a team also made this difficult because rearranging the file structure would affect the other’s program as well.
- Getting express to serve the front end instead of react
- Registering the passwords and users are private
- Creating a login and register section that also displayed on a html/css based website
- Lack of time! In hindsight, we were definitely ambitious! In the end, we were not able to fully code the frontend part of the “creating goals” section of our website, but it was an idea we were both passionate about.
Accomplishments that we are proud of
- Taking the initiative to join a hackathon! It can take a lot of courage since the experience can be a little foreign, but overall it was nice to meet new people and get involved
- Finishing the project! It was definitely a little frustrating at first since we were learning a new language and it was a new experience. Although we did not finish, it was definitely rewarding to see part of our vision come to life (also, improvements can always be made!).
What we learned
- Modular components using React in order to serve our content to the user
- Use Express and ExpressRouter to process and filter information from the requester
- MongoDB to store information in a database and retrieve it efficiently and effectively
- Creating interactive hamburger menu
- Using bootstrap to effectively organize information
What’s next for AchieveKaizen
- Creating the front-end half for the “creating goals” and “activity tracking” part, as well as the analytics (a user dashboard)
- Clean things up on a design perspective and create a more original logo
- Add more testimonies and social media
- App version potentially :)