{"id":31322806,"url":"https://github.com/tiffany-co/captaindock","last_synced_at":"2026-04-11T05:34:04.180Z","repository":{"id":311825507,"uuid":"1044281008","full_name":"tiffany-co/CaptainDock","owner":"tiffany-co","description":"Here I connect the front end and backend of the gold shop","archived":false,"fork":false,"pushed_at":"2025-09-24T19:03:10.000Z","size":49,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2025-09-24T21:08:41.621Z","etag":null,"topics":["docker","docker-compose","fastapi","goldshop","hub","jewellery-shop","jewellery-shop-management","postgres","postgresql","python"],"latest_commit_sha":null,"homepage":"","language":"Makefile","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/tiffany-co.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-25T12:58:10.000Z","updated_at":"2025-09-24T19:02:29.000Z","dependencies_parsed_at":"2025-08-27T05:07:40.458Z","dependency_job_id":"4ec9ddaa-3b96-4e70-8c95-e76ba206ae38","html_url":"https://github.com/tiffany-co/CaptainDock","commit_stats":null,"previous_names":["tiffany-co/captaindock"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/tiffany-co/CaptainDock","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiffany-co%2FCaptainDock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiffany-co%2FCaptainDock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiffany-co%2FCaptainDock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiffany-co%2FCaptainDock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tiffany-co","download_url":"https://codeload.github.com/tiffany-co/CaptainDock/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiffany-co%2FCaptainDock/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276966940,"owners_count":25736895,"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","status":"online","status_checked_at":"2025-09-25T02:00:09.612Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["docker","docker-compose","fastapi","goldshop","hub","jewellery-shop","jewellery-shop-management","postgres","postgresql","python"],"created_at":"2025-09-25T19:16:06.916Z","updated_at":"2025-09-25T19:16:09.479Z","avatar_url":"https://github.com/tiffany-co.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Gold Shop Management System\n\n## Overview\n\nThis repository, `CaptainDock`, is the central hub for the Gold Shop Management System. It orchestrates the entire full-stack application, which includes a FastAPI backend, a frontend user interface, and the necessary database and caching services, all managed with Docker.\n\nThis document provides instructions for setting up, running, and managing the entire project.\n\n## Prerequisites\n\nBefore you begin, ensure you have the following tools installed on your system:\n\n-   **Git:** For version control. [Installation Guide](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)\n    \n-   **Docker \u0026 Docker Compose:** For running the application in containers. [Install Docker Desktop](https://www.docker.com/products/docker-desktop/)\n    \n-   **Make:** A command-line utility to simplify complex commands.\n    \n    -   **macOS/Linux:** Usually pre-installed. You can check with `make -v`.\n        \n    -   **Windows:** Can be installed via [Chocolatey](https://community.chocolatey.org/packages/make) (`choco install make`) or by using a terminal like Git Bash or WSL which include it.\n        \n\n## Getting Started\n\n1.  **Clone the Repository:** Clone this repository along with its submodules (`backend`, `frontend`) using the `--recurse-submodules` flag. This is crucial.\n    \n    ```\n    git clone --recurse-submodules \u003cyour-repository-url\u003e\n    cd CaptainDock\n    \n    ```\n    \n2.  **Configure Environment:** The project uses a `.env` file for configuration. Create one by copying the example file:\n    \n    ```\n    cp .env.example .env\n    \n    ```\n    \n    The default values in this file are suitable for local development. You do not need to change them to get started.\n    \n\n## Git Workflow\n\nThis project follows a standard Git flow model:\n\n-   `develop`: This is the primary branch for all ongoing development. All new feature branches should be based on `develop` and merged back into it.\n    \n-   `main`: This branch contains only stable, tagged releases. It should **never** be committed to directly. Releases are made by merging `develop` into `main`.\n    \n\n**Updating the Project:** To pull the latest changes for this repository and all its submodules, run:\n\n```\ngit pull --recurse-submodules\n\n```\n\n## Development Workflow (Local)\n\nIn development mode, the databases run inside Docker containers, but the backend and frontend code run directly on your local machine for easier debugging and hot-reloading.\n\n### 1. Running the Backend\n\nThe backend is a FastAPI application. For detailed instructions on its setup, project structure, and database migrations, please refer to its dedicated documentation:\n\n\u003e [**backend/README.md**](https://github.com/tiffany-co/backend)\n\n### 2. Running the Frontend\n\nThe frontend is a simple application. For instructions on its setup and development workflow, please refer to its dedicated documentation:\n\n\u003e [**frontend/README.md**](https://github.com/tiffany-co/frontend)\n\n### 3. Starting Services\n\nFrom the `CaptainDock` root directory, start the required database and Redis containers:\n\n```\nmake up-dev\n\n```\n\n## Production Workflow (Docker)\n\nIn production mode, the entire application stack (backend, database, Redis) runs inside Docker containers, managed by `docker-compose.prod.yml`.\n\n-   **Build and Start:** To build the Docker images and start the services in the background:\n    \n    ```\n    make up-prod-build\n    \n    ```\n    \n-   **Stop:** To stop the production services:\n    \n    ```\n    make down-prod\n    \n    ```\n    \n\n### Managing the Production Database\n\nYou can run administrative tasks on the production database via the running `backend` container.\n\n-   **Create an Admin User:**\n    \n    ```\n    make create-admin-prod\n    \n    ```\n    \n-   **Seed Demo Data:**\n    \n    ```\n    make seed-db-prod\n    \n    ```\n    \n-   **Truncate the Database (DANGEROUS):**\n    \n    ```\n    make truncate-db-prod\n    \n    ```\n    \n\n## Tools\n\n### Using Make\n\nThis project uses a `Makefile` to provide simple, memorable commands for common operations. To see a full list of available commands and their descriptions, run:\n\n```\nmake help\n\n```\n\n### Database Monitoring with DBeaver\n\nA graphical tool like [DBeaver](https://dbeaver.io/) is highly recommended for viewing and managing the database.\n\n**Connection Settings:**\n\n-   **Host:**  `localhost`\n    \n-   **Database:**  `app` (or the value of `POSTGRES_DB` in your `.env` file)\n    \n-   **Port:**  `5433` (or the value of `DB_PORT` in your `.env` file)\n    \n-   **Username:**  `user` (or the value of `POSTGRES_USER`)\n    \n-   **Password:**  `password` (or the value of `POSTGRES_PASSWORD`)\n    \n\n## Troubleshooting\n\n### Port Conflicts on Windows\n\nSometimes, Windows services may reserve the ports used by Docker. If you encounter errors related to a port being \"already in use,\" you can often resolve it by running the following commands in an **Administrator PowerShell or Command Prompt**:\n\n```\nnet stop winnat\nnet start winnat\n\n```\n\nThen, try running your `make` command again.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiffany-co%2Fcaptaindock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftiffany-co%2Fcaptaindock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiffany-co%2Fcaptaindock/lists"}