{"id":18939268,"url":"https://github.com/git-abby/shop-app","last_synced_at":"2026-04-12T05:33:46.430Z","repository":{"id":255932973,"uuid":"853917008","full_name":"Git-abby/shop-app","owner":"Git-abby","description":"A React.js e-commerce app with Firebase Authentication for secure login, Google Sign-In, and product browsing. Styled with Tailwind CSS.","archived":false,"fork":false,"pushed_at":"2024-12-25T07:56:39.000Z","size":745,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-25T08:40:19.853Z","etag":null,"topics":["404-page","authentication","firebase","firebase-auth","frontend","github-actions","javascript","reactjs","rest-api","tailwindcss","webdevelopment"],"latest_commit_sha":null,"homepage":"https://shop-app-d0503.web.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Git-abby.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-09-07T22:29:47.000Z","updated_at":"2024-12-25T07:56:43.000Z","dependencies_parsed_at":"2024-12-25T08:29:40.447Z","dependency_job_id":"09a8c63b-88bd-4f8e-a9cf-22fd78cf0bf0","html_url":"https://github.com/Git-abby/shop-app","commit_stats":null,"previous_names":["git-abby/shop-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Git-abby/shop-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Git-abby%2Fshop-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Git-abby%2Fshop-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Git-abby%2Fshop-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Git-abby%2Fshop-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Git-abby","download_url":"https://codeload.github.com/Git-abby/shop-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Git-abby%2Fshop-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31705574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T05:11:36.334Z","status":"ssl_error","status_checked_at":"2026-04-12T05:11:27.332Z","response_time":58,"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":["404-page","authentication","firebase","firebase-auth","frontend","github-actions","javascript","reactjs","rest-api","tailwindcss","webdevelopment"],"created_at":"2024-11-08T12:16:57.481Z","updated_at":"2026-04-12T05:33:46.413Z","avatar_url":"https://github.com/Git-abby.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Shop App\n\n![React](https://img.shields.io/badge/React-v18.2.0-blue) \n![Firebase](https://img.shields.io/badge/Firebase-Authentication-orange) \n![Tailwind CSS](https://img.shields.io/badge/TailwindCSS-v3.0-blue) \n![GitHub Actions](https://img.shields.io/badge/GitHub%20Actions-CI%2FCD-brightgreen)\n![Firebase Hosting](https://img.shields.io/badge/Firebase%20Hosting-Live-brightgreen)\n\nThis project is a shop application where users can sign in, browse products, view product details, and logout. It is built using **React** for the frontend, **Firebase** for authentication. The app is styled using **Tailwind CSS** and uses **GitHub Actions** for CI/CD with deployment on **Firebase Hosting**.\n\n## Features\n\n- ✅ User authentication with Firebase (sign-up, login, Google login, logout).\n- ✅ Products page with list of items fetched from Fake Store API.\n- ✅ View individual product details.\n- ✅ Secure routing: unauthenticated users cannot access the products page.\n- ✅ Error page for invalid URLs.\n- ✅ Continuous deployment via GitHub Actions.\n- ✅ Responsive design with Tailwind CSS.\n- ✅ Firebase Hosting for production deployment.\n\n## User Flow\n\n1. **Login Page**: Users can sign in using email/password or Google authentication. If the user doesn't have an account, they can navigate to the sign-up page.\n    - **Validation**: Username and password are required, invalid email formats and Firebase authentication errors are handled.\n2. **Sign-Up Page**: Users can create a new account with email and password.\n3. **Products Page**: After successful login, users are redirected to the products page, where they can browse available products.\n4. **Product Details**: Clicking on a product opens the product details page.\n5. **Not Found Page**: Users entering an invalid URL will be redirected to the \"Not Found\" page.\n6. **Secure Routing**: Users who are not logged in cannot directly access the products page.\n\n## Tech Stack\n\n- **Frontend**: ![React](https://img.shields.io/badge/React-v18.2.0-blue)\n- **Authentication**: ![Firebase](https://img.shields.io/badge/Firebase-Authentication-orange)\n- **Database**: ![Firestore](https://img.shields.io/badge/Firestore-NoSQL-yellow)\n- **Styling**: ![Tailwind CSS](https://img.shields.io/badge/TailwindCSS-v3.0-blue)\n- **Deployment**: ![Firebase Hosting](https://img.shields.io/badge/Firebase%20Hosting-Live-brightgreen)\n- **CI/CD**: ![GitHub Actions](https://img.shields.io/badge/GitHub%20Actions-CI%2FCD-brightgreen)\n\n## Prerequisites\n\n- Node.js (v16+)\n- Firebase account (for Authentication and Firestore setup)\n- Firebase CLI installed globally: `npm install -g firebase-tools`\n- Git\n\n## Getting Started\n\n### 1. Clone the repository\n\n```bash\ngit clone https://github.com/Git-abby/shop-app.git\ncd shop-app\n```\n\n### 2. Install Dependencies\n\n```bash\nnpm install\n```\n\n### 3. Firebase Setup\n\n1. Go to the [Firebase Console](https://console.firebase.google.com/).\n2. Create a new project.\n3. Add Firebase Authentication (enable Email/Password and Google sign-in methods).\n4. Create a Firestore database (choose \"Start in Test mode\" for ease of development).\n5. Create a new web app in Firebase and get the configuration keys.\n\n```plaintext\nREACT_APP_API_KEY=your-firebase-api-key\nREACT_APP_AUTH_DOMAIN=your-firebase-auth-domain\nREACT_APP_PROJECT_ID=your-firebase-project-id\nREACT_APP_STORAGE_BUCKET=your-firebase-storage-bucket\nREACT_APP_MESSAGING_SENDER_ID=your-firebase-messaging-sender-id\nREACT_APP_APP_ID=your-firebase-app-id\n```\n\n### 4. Running the Application\n\nOnce the Firebase configuration is set up, you can run the application:\n\n```bash\nnpm start\n```\n\nThis will start the development server at `http://localhost:3000`.\n\n### 5. Deploying to Firebase\n\n```bash\nfirebase login\nfirebase init\nnpm run build\nfirebase deploy\n```\n\n## Project Structure\n\n```plaintext\nshop-app/\n├── public/                  # Public assets and index.html\n├── src/                     # Application source code\n│   ├── components/          # Reusable components like Login, Products, ProductDetails\n│   ├── firebase.js          # Firebase configuration and initialization\n│   ├── App.js               # Main app component\n│   ├── index.js             # Entry point of the React app\n│   └── styles/              # Tailwind CSS styles for the app\n├── .github/                 # GitHub Actions workflow configuration\n│   └── workflows/\n│       └── firebase-hosting-pull-request.yml\n├── .gitignore               # Files and folders to be ignored by Git\n├── package.json             # Dependencies and scripts\n├── README.md                # Project documentation\n└── firebase.json            # Firebase configuration for hosting\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgit-abby%2Fshop-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgit-abby%2Fshop-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgit-abby%2Fshop-app/lists"}