DailyPrompt empowers a user to practice object writing on a daily basis.
Write something today at DailyPrompt
Object writing is a daily exercise where you write about an object for 5 minutes. It's often used for songwriting and is a great way for creating a daily writing habit. You'll write about a single word/object in a free flow manner using your 5 senses - sight, touch, taste, smell, and sound. When the timer goes off you're done until the next day's daily writing prompt.
- daily word generated from a word bank
- definitions from a 3rd party API
- a writing timer
- daily SMS reminders to write
DailyPrompt is built with Ruby on Rails, Postgres, Wordnik, Twilio, and is hosted with Heroku.
- add a timer
- get timer to start with click of a button
- show word from api
- show definition
- migration to add publish_date column to word model
- increase Word.count to 365 (1/day)
- give each word a publish_date
- create a scope to access 'word of the day'
- display definition on show
- create list of 365 quality words
- create rake task to instantiate word instances from a list of words in a csv file, and then persist these to the database.
- delete old words
- delete old prompts
- add new words
- add publish date to new words
- update gemfile to use postgres for production db
- deploy to heroku
- migrate database
- run rake task on heroku to import 365 words from csv and instantiate as words on production db
- update the publish_date of each word on production db
- update wordnik api key in ENV for deployment to heroku
- updated heroku timezone so the word of the day changes according to local (chicago) time
- update create account / login links
- fixed bug where new prompt timer wouldn't start unless page was refreshed first. Related to the JS/Turbolinks not loading, see: https://stackoverflow.com/questions/17317816/rails-javascript-only-works-after-reload
- moved timer into a partial
- created singular resource for users#show to create a profile route
- setup edit/update actions in the prompt controller
- add edit button on prompt show page
- setup a destroy action in the prompt controller - only allow prompt owner to delete
- add delete button to the prompt show view - only allow prompt owner to view this button
- style sign up / log in / edit
- move word_count logic from controller into a method in the prompt model
- use helper methods for the ivars currently in my controller
- create a private method with a before_action in the prompt controller to prevent a user from editing/updating another user's prompt
- add bootstrap .container to views for responsive width
- add stats to user dashboard
- total words written
- make posted by text list username instead of email
- redirect user to his/her prompt after creation
- add field for username, city, and bio to sign up and edit forms
- validate username at signup
- add validation to bio to keep it at 200 characters max
- add validation to ensure usernames are all unique
- setup a tabbed form so user can write on the word of the day or a 'freewrite'
- setup a user dashboard
- display new prompt button on user's dashboard if they've not written today
- display list of prompts on a user's home page
- notify user via sms when it's time to write (using twilio)
- stats: total prompts, total users, latest user to write prompt, total words written by all users
- maybe use charts.js to display above stats on user dashboard
- FAQ's page
- show word type
- show word usage
- show synonyms
- related image
- add brown noise audio option
- timer alert in styled modal
- how could natural language processing be used? Analysis of part of speech? Sentiment of a prompt? http://www.thagomizer.com/blog/2017/04/13/the-google-nlp-api-meets-ruby.html
- use musixmatch api to allow user to select a few of his/her favorite artists and save to account. Then display song lyrics from a song of a favorite artist each day across the header of the site.
- make validation errors look nicer on the eyes
- setup recurring sms reminders. maybe like this: http://nithinbekal.com/posts/rails-recurring-events/