{"id":40291372,"url":"https://github.com/sleepingkingstudios/lisa","last_synced_at":"2026-01-20T04:38:12.751Z","repository":{"id":219411644,"uuid":"748986205","full_name":"sleepingkingstudios/lisa","owner":"sleepingkingstudios","description":null,"archived":false,"fork":false,"pushed_at":"2024-01-29T12:57:58.000Z","size":49,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-01-30T10:11:43.207Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sleepingkingstudios.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2024-01-27T08:39:53.000Z","updated_at":"2024-01-27T08:40:20.000Z","dependencies_parsed_at":"2024-01-27T09:40:03.338Z","dependency_job_id":null,"html_url":"https://github.com/sleepingkingstudios/lisa","commit_stats":null,"previous_names":["sleepingkingstudios/lisa"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sleepingkingstudios/lisa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sleepingkingstudios%2Flisa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sleepingkingstudios%2Flisa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sleepingkingstudios%2Flisa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sleepingkingstudios%2Flisa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sleepingkingstudios","download_url":"https://codeload.github.com/sleepingkingstudios/lisa/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sleepingkingstudios%2Flisa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28596083,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T02:08:49.799Z","status":"ssl_error","status_checked_at":"2026-01-20T02:08:44.148Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-20T04:38:12.696Z","updated_at":"2026-01-20T04:38:12.745Z","avatar_url":"https://github.com/sleepingkingstudios.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Current Weather\n\nA sample application displaying the current weather for a requested location.\n\nInternally the application relies on two external APIs:\n\n- [Geoapify](https://www.geoapify.com/): For processing user input into location data.\n- [Meteomatics](https://www.meteomatics.com/): For querying the weather at a location.\n\nThis application has a [deployed instance](https://vast-lowlands-18552-049afa1c6ddc.herokuapp.com/). The canonical repository can be found [on GitHub](https://github.com/sleepingkingstudios/lisa). The documentation can be viewed using [GitHub Pages](http://www.sleepingkingstudios.com/lisa/).\n\n## Setup\n\nTo set up the application locally:\n\n- Install Ruby version 3.4.3\n- Clone this repository using `git clone git@github.com:sleepingkingstudios/lisa.git`\n- Install the dependencies using `bundle install`\n- Set the configuration values (see below)\n- Start the application using `bundle exec rails server`\n\n### Configuration\n\nThe application relies on the following configuration values:\n\n- `GEOCODING_API_KEY`: The API key for the Geocoding API.\n- `GEOCODING_API_URL`: The base url for the Geocoding API.\n- `WEATHER_API_URL`: The base url for the Weather API.\n- `WEATHER_API_USERNAME`: The username for the Weather API.\n- `WEATHER_API_PASSWORD`: The password for the Weather API.\n\nTo test the application locally, set the configuration using environment variables. In the deployed application, the configuation is set at the platform level.\n\n## Documentation\n\nThis project is documented using YARD. An [online version]() of the documentation is also available.\n\n## Testing\n\nThe application's test suite is written in RSpec. To run the tests, set up the application locally and then run `bundle exec rspec`. This will also display the code coverage.\n\nThe application is linted using RuboCop. To run the linter, set up the application locally and then run `bundle exec rubocop`.\n\n## Further Development\n\nI would identify two key areas for further development:\n\n### Improved UI\n\nThe current UI is extremely basic, and uses the [Bulma CSS framework](https://bulma.io/) for off-the-shelf styling. A more streamlined experience could be created using something like Tailwind, or supplementing the current design with some custom CSS.\n\nOne option to improve the user experience would be some basic settings, such as displaying temperature data in degrees Fahrenheit or Celcius, or allowing the user to set a default location.\n\nOn a technical level, I would recommend using a tool such as the [ViewComponent](https://viewcomponent.org/) gem if the app will continue to use server-side rendering.\n\n### Better Location Handling\n\nCurrently, the location handling is very simplistic, returning a best guess based on the user's input. A more sophisticated solution would present a list of possible values for the user to choose from, possibly using the user's current location to determine likely possibilities. On the UX side, separating the location step from the weather query would prevent unnecessary calls to the weather API.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsleepingkingstudios%2Flisa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsleepingkingstudios%2Flisa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsleepingkingstudios%2Flisa/lists"}