{"id":14955531,"url":"https://github.com/stringlytyped/vancityguide","last_synced_at":"2026-02-07T18:04:48.587Z","repository":{"id":40189572,"uuid":"228416368","full_name":"stringlytyped/vancityguide","owner":"stringlytyped","description":"Vancouver tourism info website","archived":false,"fork":false,"pushed_at":"2023-01-19T16:26:39.000Z","size":138,"stargazers_count":0,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-23T13:50:46.246Z","etag":null,"topics":["css","html","javascript","jquery","rails","rails5","ruby"],"latest_commit_sha":null,"homepage":"https://vancity.guide","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/stringlytyped.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}},"created_at":"2019-12-16T15:23:46.000Z","updated_at":"2019-12-16T20:44:11.000Z","dependencies_parsed_at":"2023-02-11T09:30:53.269Z","dependency_job_id":null,"html_url":"https://github.com/stringlytyped/vancityguide","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stringlytyped/vancityguide","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stringlytyped%2Fvancityguide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stringlytyped%2Fvancityguide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stringlytyped%2Fvancityguide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stringlytyped%2Fvancityguide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stringlytyped","download_url":"https://codeload.github.com/stringlytyped/vancityguide/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stringlytyped%2Fvancityguide/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29203052,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T17:44:10.191Z","status":"ssl_error","status_checked_at":"2026-02-07T17:44:07.936Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["css","html","javascript","jquery","rails","rails5","ruby"],"created_at":"2024-09-24T13:11:19.099Z","updated_at":"2026-02-07T18:04:48.562Z","avatar_url":"https://github.com/stringlytyped.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vancity Guide\n\nVancity Guide is a simple tourist information web application for the city of Vancouver, Canada. Visitors can browse attractions that have been posted to the website, or create an account and contribute their own.\n\nOnly administrators can mark attractions as \"featured\" which causes them to be added to the interactive map.\n\nThe default admin email address is `admin@example.com` and the password is `password`.\n\n**NOTE:** Points of interest are refered to as `Pois` in the code, but \"attractions\" in the user interface.\n\n## Resources\n\nThe application has the following resources and actions:\n\n* **home**: home\n* **contact**: new, create\n* **sessions**: new, create\n* **registrations**: new, create, edit, update\n* **passwords**: new, create, edit, update\n* **pois**: index, show, new, create, edit, update, destroy\n* **bookmarks**: index, show, create, update, destroy\n\n## Best practices\n\n### Boilerplate\n\nI have used a boilerplate based on the [HTML5 Boilerplate](https://html5boilerplate.com/). Unneeded parts such as [PWA](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps) support, apache config files, robots.txt, etc. have been removed. Normalize.css has been included, however, to reset browser styles to sensible defaults.\n\n### Unobtrusive JavaScript\n\nScripts are only every bound to DOM elements using HTML data attributes prefixed with `data-js-`, so that it is clear what elements are modified after the initial page load.\n\nTo meet the assignment requirement of using jQuery, the rails-ujs library was replaced with [jquery-ujs](https://github.com/rails/jquery-ujs).\n\n### CSS architecture\n\nI used the [ITCSS](https://www.xfive.co/blog/itcss-scalable-maintainable-css-architecture/) architecture to organize my CSS code, in order to ensure maintainability.\n\n### Separation of concerns\n\nOverall, seperation of functionality, structure and presentation are maintained. I did find it neccesary, however, to include some JavaScript code on the page in `\u003cscript\u003e` tags in a few places.\n\n### Progressive enhancement\n\nThe app should be fully functional with JavaScript disabled. However, the map will not load in such an event.\n\nNew CSS properties have been used in some places, but should gracefully degrade in older browsers.\n\n### Responsive design\n\nThe app was built mobile-first and adapts to the screen size of the user's device.\n\n### Semantic HTML\n\nHTML tag sematics are respected throughout the project.\n\n## Advanced features\n\n### Devise authentication\n\nAuthentication has been implemented using the Devise library. The models and views provided have been customized to the application.\n\n### Validator\n\nA custom validator has been implemented to validate URLS.\n\n### SVG Sprite\n\nImages have been combined into a single SVG file to cut down on the number of requests a user's browser need to make when loading the application.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstringlytyped%2Fvancityguide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstringlytyped%2Fvancityguide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstringlytyped%2Fvancityguide/lists"}