{"id":18214325,"url":"https://github.com/balikuddembe/product_listing_app","last_synced_at":"2026-04-05T22:35:31.354Z","repository":{"id":260822313,"uuid":"868062710","full_name":"Balikuddembe/product_listing_app","owner":"Balikuddembe","description":"How to Work with SQL (PostgreSQL, MySQL) Databases Using Node.js","archived":false,"fork":false,"pushed_at":"2024-11-02T20:02:27.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-02-13T22:51:13.065Z","etag":null,"topics":["aiven-cloud","mysql","neon-postgres","nodejs","postgesql","reactjs","sequalize","vitejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/Balikuddembe.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":"2024-10-05T11:33:01.000Z","updated_at":"2024-11-02T20:02:32.000Z","dependencies_parsed_at":"2024-11-02T20:25:41.268Z","dependency_job_id":null,"html_url":"https://github.com/Balikuddembe/product_listing_app","commit_stats":null,"previous_names":["balikuddembe/product_listing_app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Balikuddembe%2Fproduct_listing_app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Balikuddembe%2Fproduct_listing_app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Balikuddembe%2Fproduct_listing_app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Balikuddembe%2Fproduct_listing_app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Balikuddembe","download_url":"https://codeload.github.com/Balikuddembe/product_listing_app/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247731251,"owners_count":20986624,"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":["aiven-cloud","mysql","neon-postgres","nodejs","postgesql","reactjs","sequalize","vitejs"],"created_at":"2024-11-03T16:03:40.182Z","updated_at":"2026-04-05T22:35:31.299Z","avatar_url":"https://github.com/Balikuddembe.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"````markdown\n# Product Listing Application\n\nA Node.js-based backend for managing a product listing application, with full CRUD (Create, Read, Update, Delete) functionality. The application uses Sequelize as the ORM to enable compatibility with both PostgreSQL and MySQL databases.Continued to use neon postgres database as a cloud database and aiven mysql database as a cloud database.\n\n## Features\n\n- **CRUD Operations**: Allows creating, reading, updating, and deleting products.\n- **Database Support**: Configured to work with both PostgreSQL and MySQL, enabling flexibility based on deployment needs.\n- **Sequelize ORM**: Provides efficient data querying and schema management.\n- **Environment-Based Configuration**: Easily manage database credentials and other environment-specific settings.\n\n## Technologies Used\n\n- **Node.js** - JavaScript runtime environment\n- **Express** - Web application framework for Node.js\n- **Sequelize** - ORM for SQL databases\n- **PostgreSQL** / **MySQL** - Supported databases\n\n## Prerequisites\n\n- **Node.js** (v14 or higher)\n- **PostgreSQL** or **MySQL** database\n- **npm** (Node Package Manager)\n\n## Getting Started\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/Balikuddembe/product_listing_app.git\ncd product_listing_app\n```\n````\n\n### 2. Install Dependencies\n\n```bash\nnpm install\n```\n\n### 3. Set Up Environment Variables\n\nCreate a `.env` file in the root directory and add the following variables:\n\n```plaintext\nDB_DIALECT=postgres   # or 'mysql' for MySQL\nDB_HOST=your_database_host\nDB_PORT=your_database_port\nDB_NAME=your_database_name\nDB_USER=your_database_user\nDB_PASSWORD=your_database_password\n```\n\n### 4. Database Setup\n\nMake sure your PostgreSQL/MySQL database is running, then run the Sequelize migrations to set up the tables:\n\n```bash\nnpx sequelize-cli db:migrate\n```\n\n### 5. Run the Application\n\n```bash\nnpm start\n```\n\nThe application will start on `http://localhost:3030`.\n\n## API Endpoints\n\n| Method | Endpoint            | Description                  |\n| ------ | ------------------- | ---------------------------- |\n| GET    | `/api/   products`  | Get all products             |\n| GET    | `/api/products/:id` | Get a specific product by ID |\n| POST   | `/api/products`     | Create a new product         |\n| PUT    | `/products/:id`     | Update a specific product    |\n| DELETE | `/products/:id`     | Delete a specific product    |\n\n### Sample API Request\n\nTo create a new product, make a `POST` request to `/api/products` with the following JSON body:\n\n```json\n{\n  \"name\": \"Sample Product\",\n  \"rating\": 4.5,\n  \"price\": 29.99,\n  \"image\": \"https://example.com/sample-product.jpg\"\n}\n```\n\n## License\n\nThis project is licensed under the MIT License.\n\n## Contributing\n\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\n## Contact\n\nFor any questions or issues, feel free to reach out!\n\n---\n\nThis README provides an overview of the project, setup instructions, and relevant details for anyone looking to use or contribute to the project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbalikuddembe%2Fproduct_listing_app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbalikuddembe%2Fproduct_listing_app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbalikuddembe%2Fproduct_listing_app/lists"}