Inspiration
Modern Decision Making
- Almost everyone struggles with making decisions at one point or another.
- And even when we do get the chance to make decisions, a bad decision is inevitable.
- But this doesn't have to happen.
My Thought Process
- If we lay out our reasons beforehand, then factors like greed and irrational thinking have less of an impact on our decision-making because it will become harder to justify personal gains when the cost of a decision is clear.
- So why not create an app which makes that process hassle-free?
What it does
The Application
- Decider is currently a fully functional prototype.
- Users can easily create decisions and add reasons to both the pro and con side.
- The application also includes many utilities, such as storing history and undoing / redoing, visualizing data with bar charts, and more.
- View the prototype.
How I built it
Decider was built with a passion, motivated by a desire to improve society.
Technologies
- I used HTML, CSS, and JS to design the application.
- Bootstrap was used to style the website.
- Dragula was the API used for rearranging and removing reasons.
- The tour feature was provided by Intro.js.
- Automatically detecting links in reasons was a feature provided by Linkify.
- Icons came from Font Awesome and fonts from Google Fonts.
Entirely Web-based
- This application runs offline and user data is never stored on a server. Instead, data persists in the user's local storage.
- Trying to build the application this way was quite different from what I was used to. However, if data was stored in the cloud, privacy rights could be infringed upon, especially if the application expands to track everyone's life and provide advice on making decisions, as detailed in the "What's next" section
Challenges I ran into
Working on the Project
- Many of the features had many test cases and were quite difficult to implement. For example, allowing the user to import and export reasons meant that I had to create a standard for the format of exported data, and deal with edge cases such as merging topics if they overlapped. Additionally, I wanted to make it easy and intuitive for the user to edit exports without storing redundant data, but still not rigorously checking for improper formatting of the export. This was, however, a fun process.
Thinking About the Project
- Many of the features I thought of were quite hard to design in practice. For example, when I thought about implementing undo and redo buttons, I had to experiment with multiple different locations to place them to make them more intuitive to users.
- Additionally, designing the ideas in the "What's next" section would most likely prove very difficult. At one point, I did attempt to make the "Search Google for Reasons" button.
- When I tried classifying text to be either for or against a topic, I could not find an existing API that would take reference text and a decision, and spit out reasons.
- However, I kept trying, and thought of using sentiment analysis on each sentence to see if they agreed in sentiment with the article's title or not, and if the article's title agrees with the decision, the sentence should be a pro; otherwise a con. The problem with this can be demonstrated when the decision is whether or not to take the vaccine, given a fictional article which argues that "Vaccines are Extremely Safe and Effective", but one of the reasons given is "COVID 19-vaccines are effective and can lower your risk of getting and spreading the virus that causes COVID-19. COVID-19 vaccines also help prevent serious illness and death in children and adults even if they do get COVID-19." (taken from this CDC article), returns a negative sentiment (sentiment analysis provided by https://text2data.com/). Because this is of the opposite sentiment, the sentence would imply that vaccines should not be taken, despite the opposite claim being supported by that statement. Since I could not find any other alternative to text classification, I was forced to abandon this feature. However, this remains a viable option for the future.
Unexperience
- When I first started working on this project, I had little experience in styling and creating intuitive components, because my coding experience was mainly in algorithms and USACO. However, through creating this application, I broadened my horizons.
Accomplishments that I'm proud of
Coding
- Coding this application presented many obstacles and errors, all of which I tried hard to solve. When I did solve those problems, I was proud of myself.
- Additionally, I am very proud of myself for learning many new concepts and techniques in computer science and becoming more familiar with HTML, CSS, and JS.
- Furthermore, creating this site to operate entirely offline to avoid user protection laws was an accomplishment to be proud of.
Serving the Community
- I originally created this application for my own use, but after finishing the project, I have realized that anyone can benefit, and it poses a great potential for change.
What I learned
Coding
- Before this project, I was less experienced in making aesthetic and intuitive software, but through working on Decider, I learned many skills.
Not Coding
- I also learned much about psychology when I went down a rabbit hole of internet links describing the best methods to make decisions, many of which could potentially be useful, such as SWOT analysis and the Condorcet paradox.
- Additionally, I learned that there is always more to add to a project, no matter how much you've already done.
What's next for Decider
Small Things
- These are essentially ideas I wanted to implement but didn't have enough time.
- Uploading images / other files.
- Making it possible for users to write reasons in Markdown (but at least they can still make links).
- Allowing for more customization... i.e. allowing users to have more than just pros and cons.
- Add more buttons.
Big Things
- Decider has far-reaching potential. What started as a small project could possibly (with like a tiny chance) end up changing the world.
- Decider aims to allow any person to make educated decisions.
- Some proposals I have for this idea include allowing a user to, with the click of a button, search the internet for reasons both for and against a decision.
- Or, an AI could weigh all the reasons and choose the optimal choice for you.
- Most unlikely of all, Decider could track your everyday life and offer you advice based on your actions, essentially modeling the world. This would be in high demand by government spy agencies and advertisement companies, but if we follow the above step first, they wouldn't be interested in spying on people. Additionally, our phones essentially spy on us as well, but most people have no issues with their phones.
Built With
- bootstrap
- css
- google-drawings
- html
- javascript
- love
Log in or sign up for Devpost to join the conversation.