Skip to content
aoiorioPublic

Latest commit

Β 

History

230 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation




πŸŒ‹ {"Contents"}




{1: "🫣 Overview"}



🌭 "What is Volcano"

Volcano is a simple TODO app that can recognize your voices and convert them to texts as a TODO. You can tell your TODO to Volcano like you're speaking with someone.


🧈 "Why"

I usually write down my TODOs on my note every single day.
But I perceived that it's pain in the neck and I will definitely forget something what I'm going to do today.

So I came up with an application idea to manage my TODOs with more comfortable way.

I thought recognizing my voice can be a powerful feature to remember what I was planning to do.

That's the reason of why Volcano was created.


πŸ“ "Persona"


🍈 "Features & Durations"


  • πŸ“ "TODO"

    • Voice Recognizing Feature & Add TODO From Voice Feature - 2024/06/12 - 06/28

    • Add TODO From Text Feature - 2024/06/12 - 06/28

    • Playing Voice Feature - 2024/06/28 - 07/6

    • Mark as accomplished Feature - 2024/06/28 - 07/6

    • Delete TODO Feature - 2024/07/7 - 07/14

    • Edit TODO Feature - 2024/07/7 - 07/14

    • Showing TODO With Each Type Feature - 2024/06/28 - 07/6

    • Showing Today's TODO Feature - 2024/07/3 - 07/8

    • Showing Month's TODO Feature - 2024/06/28 - 07/6

    • Sending Notification every morning Feature (new) - 2024/08/27 - 08/29


  • πŸ₯• "User"

    • Sign In Feature - 2024/06/02 - 06/11

    • Sign Up Feature - 2024/06/02 - 06/11

    • Sign Out Feature - 2024/07/14 - 07/22

    • Deleting User Feature - 2024/07/14 - 07/22

    • Edit Username Feature - 2024/07/14 - 07/22

πŸ’» Overall: 2024/05/19 - 2024/08/26 (100 days)


πŸ‘‘ "Images"


🫨 "Links"




{2: "🍽️ Methods"}


πŸ“Ί "Technologies"

πŸͺŸ "Front-End"


🐘 "Back-End"

🌯 "Infrastructure"

πŸ«‘ "Design"



"πŸ“‚ Folder Structure"

"πŸ“‚ Folder Structure"

└── πŸ“lib
    └── πŸ“core
        └── errors.dart // for writing original error type (e.g. BackEndError)
    └── πŸ“domain // for creating the base
        └── πŸ“entity
        └── πŸ“repository
        └── πŸ“usecase
    └── πŸ“gen // for storing generated assets by using fluttergen
    └── πŸ“infrastructure // for materializing the methods of repository from domain
        └── πŸ“datasource // for creating methods of getting data from API Endpoints
            └── πŸ“auth
            └── πŸ“todo
            └── πŸ“type_color_code
            └── πŸ“user
        └── πŸ“dto // for specializing the type of data
        └── πŸ“model // for the types that users input
            └── πŸ“auth
            └── πŸ“todo
            └── πŸ“user
        └── πŸ“repository // for using datasource to materialize reposiotry methods of domain 
    └── πŸ“presentation // for creating UI
        └── πŸ“component
            └── πŸ“global
            └── πŸ“modal
            └── πŸ“sign_in
            └── πŸ“sign_up
            └── πŸ“todo
        └── πŸ“importer
            └── volcano_page_importer.dart
        └── πŸ“page
            └── πŸ“auth
            └── πŸ“dialogs
            └── πŸ“todo_details
            └── πŸ“tutorial
            └── πŸ“volcano
        └── πŸ“provider // for managing data by using riverpod
            └── πŸ“back
                └── πŸ“auth
                └── πŸ“todo
                └── πŸ“type_color_code
                └── πŸ“user
                └── global_back_providers.dart
            └── πŸ“front
                └── πŸ“auth
                └── πŸ“notification
                └── πŸ“todo
                └── πŸ“tutorial
            └── πŸ“global
        └── πŸ“routes
            └── πŸ“routes_model
            └── routes.dart
        └── πŸ“supporter
            └── notification_random_message.dart
        └── πŸ“theme
            └── theme.dart
    └── πŸ“usecase // for giving data to presentation layer with repository methods
    └── main.dart

🐊 "Flutter Dependencies"



  • 🌎 "Implementing Authentication Feature"





And more! If you want to check all of them, please go to my pubspec.yaml


πŸ“Έ "Method's Pictures"


"As an User" "As a Developer"

🧠 "ERD"




{3: "🫐 Thoughts"}


πŸ’Ž "My Favorites"


1. 🐠 Saving Hex Color Code In Database

  • Reason

    • I wanted to create a great app to recognize types directly through my eyes
  • Difficult Points

    • Converting color codes to Flutter's color codes
    • Generating RBG with range for color I like

2. πŸ™ƒ Displaying Today's TODOs

  • Reason

    • When I open Volcano in the morning, I can see what I have to do today and achieve it without forgetting something
  • Difficult Points

    • I was torn between splitting the API endpoints of getting Today's TODO and Month's TODO or not (Finally I decided to combine them together)

3. πŸ—‚οΈ Using Onion Architecture

  • Reason

    • I usually write spaghetti codes so I was craving for writing clean and updatable codes by myself
  • Difficult Points

    • I've started to learn about Onion Architecture without any knowledge of it. So I struggled with how I create folder structure

🀠 "What I've got"


"I felt like I was working with my teammates even I've developed this by my own"

  • I used architecture like I was creating an app with someone
  • When I merge my PR to a branch, I always send "LGTM" photo on my issue or PR pages and it seemed like I was reviewed from my boss
  • I also tried to separate URLs of Amazon API Gateway such as prod and dev like the actual projects do in companies


Buy Me A Coffee



{
    "status_code": 500,
    "message": "Thank you."
}


Releases

Packages

Used by

Contributors

Languages