{"id":29416955,"url":"https://github.com/giuliannaribeiro/topspots","last_synced_at":"2025-07-11T20:08:23.632Z","repository":{"id":304061693,"uuid":"1016415695","full_name":"GiuliannaRibeiro/topSpots","owner":"GiuliannaRibeiro","description":"Angular app to list and rate favorite places using Google login and JSON Server","archived":false,"fork":false,"pushed_at":"2025-07-11T03:13:55.000Z","size":317,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-11T04:29:12.799Z","etag":null,"topics":["angular","dockerfile","google-authentication","json-server","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/GiuliannaRibeiro.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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-09T01:44:04.000Z","updated_at":"2025-07-11T03:13:58.000Z","dependencies_parsed_at":"2025-07-11T04:29:29.250Z","dependency_job_id":null,"html_url":"https://github.com/GiuliannaRibeiro/topSpots","commit_stats":null,"previous_names":["giuliannaribeiro/topspots"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/GiuliannaRibeiro/topSpots","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GiuliannaRibeiro%2FtopSpots","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GiuliannaRibeiro%2FtopSpots/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GiuliannaRibeiro%2FtopSpots/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GiuliannaRibeiro%2FtopSpots/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GiuliannaRibeiro","download_url":"https://codeload.github.com/GiuliannaRibeiro/topSpots/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GiuliannaRibeiro%2FtopSpots/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264890087,"owners_count":23678833,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["angular","dockerfile","google-authentication","json-server","tailwindcss","typescript"],"created_at":"2025-07-11T20:08:22.995Z","updated_at":"2025-07-11T20:08:23.614Z","avatar_url":"https://github.com/GiuliannaRibeiro.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌍 TopSpots\n\nTopSpots is a web application built with **Angular 18** that allows users to list, view, and filter their **favorite places**. The system uses **Google OAuth2** for authentication and simulates a REST API with **JSON Server**. With a fully responsive design, the project focuses on performance, best practices, and a clean interface using **TailwindCSS**.\n\n---\n\n## ✅ Features\n\n- **Google Login (OAuth2):** Simplified and secure authentication  \n- **Place Display:** Shows image, name, category, and rating  \n- **Dynamic Filtering:** Real-time search by name and category  \n- **Category Management:** Categories list handled via JSON  \n- **Rating System:** Star-based rating display  \n- **Route Protection:** AuthGuard implementation for secure routes  \n- **Responsive Design:** Built with TailwindCSS for consistent experience across devices\n- **Docker Support:** Production-ready Dockerfile for containerized deployment\n\n---\n\n## 🛠️ Technologies\n\n- Angular 18 (with Router, Lazy Loading, Route Data)  \n- TailwindCSS  \n- JSON Server  \n- TypeScript  \n- Angular OAuth2 OIDC (v18)  \n- RxJS + Signals\n- Lottie Animations (ngx-lottie + lottie-web)\n\n---\n\n## 🚀 Installation \u0026 Running\n\n1. **Clone the repository**  \n   ```bash\n   git clone https://github.com/GiuliannaRibeiro/topspots.git\n   cd topspots\n   ```\n   \n2. **Install dependencies**  \n   ```bash\n   npm install\n   ```\n\n3. **Start the fake API**  \n   ```bash\n   npm run server\n   ```\n   \n4. **Run the Angular application**  \n   ```bash\n   ng serve -o\n   ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiuliannaribeiro%2Ftopspots","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiuliannaribeiro%2Ftopspots","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiuliannaribeiro%2Ftopspots/lists"}