🏁 Followthru ➡️
This is our Github Repository for our project submission to ULHacks: Followthru.
|"The best way to learn is by doing. We are here to help manage your project by creating SMART-based goals, and keeping you on track with your priorities to make sure you -followthru- on your projects."|
Team Members 👨🏻💻👨🏼💻🧑🏻💻👨🏻💻:
- John Kang: Designer and Web Developer
- Kevin Wang: Back-end and Android Developer
- Zac Waite: Project Manager and Back-end Developer
- JJ Doleweerd: Designer and IOS Developer
Project Description 📝:
To help people begin their learning journey, and to make sure they see it through to the end, we wanted to create a product that implements a user-focused interface of a SMART Goal. A SMART Goal stands for Specific, Measurable, Attainable, Realistic, And Timely. They have been proven to help motivate people to accomplish more.
However, it can be confusing to organize groups of tasks into this format, and even harder for a whole project. Followthru helps you create SMART goals without even knowing it through our user interface for project management. **
⚡️ With our combined experience, we were able to have our app run natively on IOS and Android, and online on mobile and desktop! And it is all unified with the same design and features ⚡️
Our goal is to implement each of the letters in the SMART acronyms with a service in our application.
- S: Specific 🎯
- Creating modular project organization
- Branching off related groups into smaller pieces
- M: Measurable 📏
- To-do Lists
- See your progress with contribution graphs *Time-lines for the future
- A: Attainable ⛳️
- Selecting priorities allows more thought into goals
- Modularity helps to see steps necessary
- R: Relevant 👤
- Dedicated page for help creating goals
- Online video and written tutorials
- High quality information about motivation and goal theories
- T: Time-Bound ⏳
- Due dates allow for thought about timelines
- Push notifications make sure users stay on top of things
- Priority of timelines gives more flexibility than other services
Solution, Goal, Problems
While thinking about the challenges we face learning how to code, or learning how to 3D model, or how to garden, or doing any project/assignment, one problem stood out: Following through with our projects.
As anyone who has competed in a hackathon like this one knows, we can make a lot of progress on an application in 36 hours, but afterwards we lose a lot of motivation to complete the project. This is true in all walks of life, and others have difficulty starting projects in the first place.
Combining our team's many ideas together, of to-do apps, learning resources, help with exam fever, organization software, and more, we came up with the name Followthru, and the rest evolved from that.
What it does 📱☑️:
Followthru provides serveral services on one unified platform. It allows for project management, version control, todo lists, learning about goal creation, scheduling, and more.
On our project management pages, users can scroll through their existing projects, or create a new one. Once one is selected, project view allows the user to see a detailed description of their project, as well as the branches within it, or create a new branch. If a branch is selected, branch view allows the user to see all branchs and tasks within that branch. (Yes, branches can have embedded branches, to allow for maximum customization.) If a task is selected, task view allows the user to see exact details of the task to complete, helping to break each large goal into acheivable pieces, for more incentive to followthru with their projects. All levels allow the user to set a due date, but also a priority of that due date. A lot of the time, a due date is not a hard deadline, but an appriximate time frame - we wanted to make sure we established that, and sent push notifications and other information to the user accordingly.
On our goal help page, we give the user content on how to create acheivable and relevant goals
How we built it 💻:
With our team's combined experience, we were able to create an application that runs natively on IOS and Android, and on the web on mobile and desktop. After JJ and John created a unified design in Figma, everyone was able to code in their native platforms.
JJ coded the IOS app in SwiftUI with swift.
Kevin coded the Android app in IntelliJ with Java
John coded the Website in VSCode with React
Zac and Kevin coded the backend in VSCode with node and express.
Challenges we ran into 💥:
- Time frame, obviously
- Routing issues in node
- Couldn't get server requests in swift
- Swift system resource management
- Forgetting single pieces of code
- MongoDB not working for us
- .catch().then() not acting as it should
- Embedded branches were difficult to render
Accomplishments that we're proud of 🍀🍾:
- Functioning app on 3 different platforms
- Organized Back-end code
- Very few overlapping code on pull requests
- Good team work
- Implementing an organized json response on the backend
- Solid design
What we learned 🧠👍:
- Implementing several platforms requires a lot more planning
- Server requests are more difficult outside of the web
- Improved all of our coding skills significantly
What's next for Followthru 🥚🐣🐥:
What's next? We followthru with our project. We plan to properly implement a lot of our code
Our software is created to run on any platform, working natively on IOS and Android, as well as being available on the web scalable to any device. Written in
- Swift for IOS 📱
- Java for Android 📲
- HTML, CSS, JS and React for the web 💻
- Node.js and Express.js for the backend 🖥
- Settings Pop-Up
- Project List
- View Project
- View Branch
- View Task
- View Branch
- View Project
- Goal Help
- About Us
- Authorize Users 🔐
- Retrieve token from browser storage
- Verify JWT_SECRET in process.env
- Authorize (next() function)
- Send project information
- Accept project information