{"id":26219410,"url":"https://github.com/hngprojects/shopdesk-fe","last_synced_at":"2026-03-12T07:34:35.755Z","repository":{"id":280690139,"uuid":"942610426","full_name":"hngprojects/shopdesk-fe","owner":"hngprojects","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-11T19:49:46.000Z","size":17622,"stargazers_count":4,"open_issues_count":5,"forks_count":32,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-03-11T20:24:11.520Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/hngprojects.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}},"created_at":"2025-03-04T11:31:22.000Z","updated_at":"2025-03-11T19:49:50.000Z","dependencies_parsed_at":"2025-03-04T20:19:08.865Z","dependency_job_id":"c33d7776-3117-47f1-b17b-b3f23ccfe582","html_url":"https://github.com/hngprojects/shopdesk-fe","commit_stats":null,"previous_names":["hngprojects/shopdesk-fe"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hngprojects%2Fshopdesk-fe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hngprojects%2Fshopdesk-fe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hngprojects%2Fshopdesk-fe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hngprojects%2Fshopdesk-fe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hngprojects","download_url":"https://codeload.github.com/hngprojects/shopdesk-fe/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243230090,"owners_count":20257645,"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":[],"created_at":"2025-03-12T14:17:54.270Z","updated_at":"2025-03-12T14:17:54.778Z","avatar_url":"https://github.com/hngprojects.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **Shopdesk**\n\n## Project Description\n\nShopdesk is a web-based retail management system that simplifies stock tracking for retailers. It solves the problem of inefficient stock management by providing a user-friendly interface for adding, viewing, editing, and soft-deleting stock items. With secure user authentication, retailers can confidently manage their inventory and ensure accurate stock records.\n\n---\n\n## Figma design\n\n[Shopdesk figma design](https://www.figma.com/design/MswwRaThuPkTBwTIlYLJ5Y/New-shopdesk?node-id=124-3816\u0026p=f\u0026t=r3i8ejHJkCD6gIFO-0)\n\n---\n\n## Live Demo\n\n[Shopdesk Live Demo](http://157.180.27.189:7777/)\n\n---\n\n## Features\n\n**User Authentication**:\n\n- Users can log in with their email and password.\n- Incorrect credentials block access to the system.\n\n**Stock Management**:\n\n- **Add Stock**: Users can add new stock items with details like name, SKU code, price, and quantity.\n- **View Stock**: Users can view a list of all active stock items.\n- **Edit Stock**: Users can update stock details (name, price, quantity) while keeping SKU codes read-only.\n- **Soft-Delete Stock**: Stock items can be soft-deleted, meaning they are hidden from the stock list but remain stored in the database with a 'deleted' status.\n\n---\n\n## Technologies Used\n\n**Frontend**:\n\n- Next.js (React framework for server-side rendering and static site generation).\n- Tailwind CSS (utility-first CSS framework for styling).\n- shadcn/ui: A collection of reusable, accessible, and customizable UI components built with Radix UI and Tailwind CSS.\n\n**Package Manager**:\n\n- **Bun**: A fast all-in-one JavaScript runtime and package manager (used for dependency management and running scripts).\n\n---\n\n## Getting Started\n\nFollow these steps to set up and run the project locally.\n\n### Prerequisites\n\nBun: Install Bun by following the official guide: [Bun installation](https://bun.sh/docs/installation)\n\n### Installation\n\n1.  **Clone the repository**:\n\n    ```bash\n    git clone https://github.com/hngprojects/shopdesk-fe.git\n    ```\n\n2.  **Navigate to the project directory**\n\n        cd SHOPDESK-FE\n\n3.  **Install dependencies**\n\n        bun install\n\n4.  **Run the development server**\n\n        bun run dev\n\n5.  **Access the application**\n\n    Click the http://localhost:{port} link provided to open the project.\n\n---\n\n## Contribution Guidelines\n\nBefore you start contributing on this project remember to:\n\n- Ensure that all UI components and pages are implemented to match the Figma design as closely as possible, striving for pixel-perfect accuracy.\n- Pay attention to details such as spacing, typography, colors, and component alignment\n\n## Follow these steps to start contributing to the Shopdesk project.\n\n### Step 1: Fork the Repository\n\n1. Go to the original repository: [Github repository link](https://github.com/hngprojects/shopdesk-fe)\n\n2. Click the **Fork** button at the top right of the page.\n\n3. GitHub will prompt you to create a fork. By default, the repository will have the same name (shopdesk-fe).\n\n4. Click Create Fork.\n\n### Step 2: Clone Your Forked Repository\n\nClone your forked repository to your local machine:\n\n```bash\ngit clone https://github.com/your-username/shopdesk-fe.git\n```\n\n### Step 3: Create a Feature Branch\n\nCreate a new branch for your feature or bugfix. Use the following naming convention:\n\n```bash\ngit checkout -b feat/HNG-2145-your-feature-name\n```\n\nReplace your-feature-name with a short description of your feature.\n\n### Branch Naming Convention\n\n---\n\nUse semantic prefixes and hyphen-separated names.\nFor example:\n\n```bash\ngit checkout -b feat/HNG-2145-add-user-login-functionality\n\ngit checkout -b fix/HNG-2145-resolve-issue-with-stock-deletion\n\ngit checkout -b chore/HNG-2145-update-dependencies\n\ngit checkout -b docs/HNG-2145-update-README.md\n```\n\n### Step 4: Commit changes\n\nWhen you're done making changes, add them to the branch.\n\n```bash\ngit add .\n```\n\n**Follow this Conventional Commits standard to commit your changes**\n\n**type**: description\n\nExamples:\n\n```bash\ngit commit -m feat:HNG-2145-add-user-login-functionality\n\ngit commit -m fix:HNG-2145-resolve-issue-with-stock-deletion\n\ngit commit -m chore:HNG-2145-update-dependencies\n\ngit commit -m docs:HNG-2145-update-README.md\n```\n\n**Final checklist**\n\nBranch names and Commit messages use prefixes like:\n\n✅ feat/ - (New feature)\n\n✅ fix/ - (Bug fix)\n\n✅ chore/ - (Maintenance task)\n\n✅ docs/ - (Documentation changes)\n\n### Step 5 : Push changes\n\nPush your branch to your forked repository:\n\n```bash\ngit push origin feat/HNG-2145-your-feature-name\n```\n\n### Step 6 : Create a Pull Request\n\n1. Go to your forked repository on GitHub.\n\n2. Click **Compare \u0026 Pull Request** for your newly pushed branch.\n\n3. Add a title and description for your PR. A good pr should have:\n\n- **Title** - The default PR message is the commit message which describes the changes. You can edit it as needed.\n- **PR Description** - A good PR description should clearly explain what you did, why you did it, and how you tested it. Here’s an example:\n\n```markdown\n#### Follow this template:\n\n## What?\n\nI've added support for user authentication to implement the login feature as per the Figma design. This includes the login page, authentication logic, and API integration.\n\n## Why?\n\nThese changes complete the user login experience, allowing users to securely log in and manage their stock. For more background, see ticket #HNG-2145.\n\n## How?\n\nThis includes a new login page built with Next.js and Tailwind CSS, along with API integration for authentication. I used shadcn/ui for reusable components like buttons and forms.\n\n## Testing?\n\nI've tested the login functionality with valid and invalid credentials. I also verified that the UI matches the Figma design.\n\n## Screenshots (optional)\n\nScreenshot/s of the login page.\n```\n\n---\n\n## Syncing Your Fork with the HNG Repository\n\nTo keep your forked repository up-to-date with the main HNG repository, follow these steps:\n\n### Step 1: Add the HNG Repository as Upstream\n\n1. Add the HNG Repository as an Upstream\n\n```bash\ngit remote add upstream https://github.com/hngprojects/shopdesk-fe.git\n\n```\n\n2. Verify the remote was added\n\n```bash\ngit remote -v\n```\n\n### Step 2: Fetch and Merge Changes\n\n3. Fetch and Merge Changes\n   Fetch the latest changes from the HNG repository:\n\n```bash\ngit fetch upstream\n```\n\n4. Switch to your main branch:\n\n```bash\ngit checkout main\n```\n\n5. Merge the changes from the HNG repository:\n\n```bash\ngit merge upstream/main\n```\n\n6. Push the updated main branch to your forked repository:\n\n```bash\ngit push origin main\n```\n\n### Step 3: Update Your Feature Branch\n\n7. Since we are working on a feature branch, rebase it with the updated main branch:\n\n```bash\ngit checkout feat/HNG-2145-your-feature-name\n```\n\n```bash\ngit rebase main\n```\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhngprojects%2Fshopdesk-fe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhngprojects%2Fshopdesk-fe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhngprojects%2Fshopdesk-fe/lists"}