{"action":"closed","issue":{"url":"https://api.github.com/repos/joshtronic/holidayapi.com/issues/10","labels_url":"https://api.github.com/repos/joshtronic/holidayapi.com/issues/10/labels{/name}","comments_url":"https://api.github.com/repos/joshtronic/holidayapi.com/issues/10/comments","events_url":"https://api.github.com/repos/joshtronic/holidayapi.com/issues/10/events","html_url":"https://github.com/joshtronic/holidayapi.com/issues/10","id":57699433,"number":10,"title":"Move from JSON files to a Datastore?","user":{"login":"joshtronic","id":112741,"avatar_url":"https://avatars.githubusercontent.com/u/112741?v=3","gravatar_id":"","url":"https://api.github.com/users/joshtronic","html_url":"https://github.com/joshtronic","followers_url":"https://api.github.com/users/joshtronic/followers","following_url":"https://api.github.com/users/joshtronic/following{/other_user}","gists_url":"https://api.github.com/users/joshtronic/gists{/gist_id}","starred_url":"https://api.github.com/users/joshtronic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshtronic/subscriptions","organizations_url":"https://api.github.com/users/joshtronic/orgs","repos_url":"https://api.github.com/users/joshtronic/repos","events_url":"https://api.github.com/users/joshtronic/events{/privacy}","received_events_url":"https://api.github.com/users/joshtronic/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/joshtronic/holidayapi.com/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/joshtronic/holidayapi.com/labels/question","name":"question","color":"cc317c"}],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/joshtronic/holidayapi.com/milestones/1","html_url":"https://github.com/joshtronic/holidayapi.com/milestones/Version%202.0","labels_url":"https://api.github.com/repos/joshtronic/holidayapi.com/milestones/1/labels","id":979558,"number":1,"title":"Version 2.0","description":"Features to be included in version 2.0 of HolidayAPI.","creator":{"login":"joshtronic","id":112741,"avatar_url":"https://avatars.githubusercontent.com/u/112741?v=3","gravatar_id":"","url":"https://api.github.com/users/joshtronic","html_url":"https://github.com/joshtronic","followers_url":"https://api.github.com/users/joshtronic/followers","following_url":"https://api.github.com/users/joshtronic/following{/other_user}","gists_url":"https://api.github.com/users/joshtronic/gists{/gist_id}","starred_url":"https://api.github.com/users/joshtronic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshtronic/subscriptions","organizations_url":"https://api.github.com/users/joshtronic/orgs","repos_url":"https://api.github.com/users/joshtronic/repos","events_url":"https://api.github.com/users/joshtronic/events{/privacy}","received_events_url":"https://api.github.com/users/joshtronic/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":2,"state":"open","created_at":"2015-02-14T17:03:28Z","updated_at":"2015-03-07T17:12:16Z","due_on":"2015-03-31T04:00:00Z","closed_at":null},"comments":1,"created_at":"2015-02-14T17:15:33Z","updated_at":"2015-03-07T17:12:16Z","closed_at":"2015-03-07T17:12:16Z","body":"As the system gets more advanced I am starting to think that running everything off of JSON files isn't ideal and we should be using a datastore (probably mongo or redis) to store the data.\r\n\r\nRedis will probably be fine as the dataset is going to be pretty finite if we continue to calculate dates programatically and simply pull the formula and translation out of there.\r\n\r\nRight now I am reading in the entire JSON file and then run the formulas for all of the holidays (for the given year) and stow the whole thing in memcached (keyed off the country and year) that can be used to check against. Could do something similar and have it using additional keys in redis to store the calculated values. Would need to be mindful of when data is added to a country that it gets included, continuing to use expiring keys would help flush the system periodically\r\n \r\nAdditionally we would still need to provide a file format to get the data into the datastore, or even better a user interface for entering in holiday information?"}}