/followthru

Github Repository for our project submission to ULHacks

Primary LanguageJavaScript

🏁 Followthru ➡️

This is our Github Repository for our project submission to ULHacks: Followthru.

followThruLogo "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

Team Photo


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


Inspiration 💡:

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. Screen Shot 2021-08-14 at 11 13 33 AM

JJ coded the IOS app in SwiftUI with swift.

Kevin coded the Android app in IntelliJ with Java android_ui_dev_2

John coded the Website in VSCode with React Screen Shot 2021-08-13 at 10 24 35 PM

Zac and Kevin coded the backend in VSCode with node and express. Screen Shot 2021-08-15 at 7 51 20 AM

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

Software ⚛️💻:

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 🖥

Views/Pages:

  • Homepage

Screen Shot 2021-08-15 at 7 55 35 AM

* Settings Pop-Up * Project List

Screen Shot 2021-08-15 at 7 56 23 AM

* View Project

Screen Shot 2021-08-15 at 7 59 43 AM

* View Branch

Screen Shot 2021-08-15 at 7 59 53 AM

* View Task

Screen Shot 2021-08-15 at 8 00 04 AM

* Goal Help

Screen Shot 2021-08-15 at 7 56 59 AM

* Login ![android_ui_2](https://user-images.githubusercontent.com/68486874/129477812-387d08e0-5a29-4714-b11e-2a812d17d476.jpg) * Register

Screen Shot 2021-08-15 at 7 56 32 AM

* About Us

Backend

  • Authorize Users 🔐
    1. Retrieve token from browser storage
    2. Verify JWT_SECRET in process.env
    3. Authorize (next() function)
  • Send project information
  • Accept project information

Project contacts