{"id":29867116,"url":"https://github.com/mugisha-pascal/shopease-backend","last_synced_at":"2026-05-20T07:11:58.570Z","repository":{"id":297203865,"uuid":"909716378","full_name":"MUGISHA-Pascal/ShopEase-Backend","owner":"MUGISHA-Pascal","description":"A documented rest API backend for an ecommerce functionality with various features like cart and product management and a secure user authentication running on a robust fast server ","archived":false,"fork":false,"pushed_at":"2025-07-08T20:40:21.000Z","size":118,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-08T21:38:02.764Z","etag":null,"topics":["rest-api","spring-boot","spring-security","swagger"],"latest_commit_sha":null,"homepage":"","language":"Java","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/MUGISHA-Pascal.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":"2024-12-29T15:17:06.000Z","updated_at":"2025-07-08T20:40:24.000Z","dependencies_parsed_at":"2025-07-08T21:38:06.089Z","dependency_job_id":"2ee4db28-2c1a-41b0-9d32-0eab0d1e12d6","html_url":"https://github.com/MUGISHA-Pascal/ShopEase-Backend","commit_stats":null,"previous_names":["mugisha-pascal/ecommerce-backend","mugisha-pascal/shopease-backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MUGISHA-Pascal/ShopEase-Backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MUGISHA-Pascal%2FShopEase-Backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MUGISHA-Pascal%2FShopEase-Backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MUGISHA-Pascal%2FShopEase-Backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MUGISHA-Pascal%2FShopEase-Backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MUGISHA-Pascal","download_url":"https://codeload.github.com/MUGISHA-Pascal/ShopEase-Backend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MUGISHA-Pascal%2FShopEase-Backend/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267874853,"owners_count":24158767,"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-07-30T02:00:09.044Z","response_time":70,"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":["rest-api","spring-boot","spring-security","swagger"],"created_at":"2025-07-30T13:20:27.777Z","updated_at":"2026-05-20T07:11:53.549Z","avatar_url":"https://github.com/MUGISHA-Pascal.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ShopEase Backend\n\nShopEase Backend is a Spring Boot-based RESTful and GraphQL API for an e-commerce platform. It provides user authentication, product management, shopping cart, purchase processing, and more. The backend is designed for scalability, security, and ease of integration with frontend clients.\n\n## Features\n- User registration, authentication (JWT), and role management\n- Product CRUD operations\n- Shopping cart management\n- Purchase and checkout processing\n- Quantity management for inventory\n- RESTful API endpoints\n- GraphQL support\n- OAuth2 login (Google)\n- Dockerized for easy deployment\n- PostgreSQL database integration\n- Swagger/OpenAPI documentation\n\n## Technology Stack\n- Java 21\n- Spring Boot 3.4+\n- Spring Data JPA\n- Spring Security (JWT \u0026 OAuth2)\n- PostgreSQL\n- GraphQL (spring-graphql, graphql-java)\n- Swagger/OpenAPI (springdoc)\n- Docker \u0026 Docker Compose\n- Maven\n\n## Getting Started\n\n### Prerequisites\n- Java 21+\n- Maven 3.9+\n- Docker \u0026 Docker Compose (for containerized setup)\n- PostgreSQL (if running locally without Docker)\n\n### Local Development Setup\n1. **Clone the repository:**\n   ```bash\n   git clone \u003crepo-url\u003e\n   cd ShopEase-Backend\n   ```\n2. **Configure the database:**\n   - Update `src/main/resources/application.properties` if needed:\n     ```properties\n     spring.datasource.url=jdbc:postgresql://localhost:5432/ecommerce\n     spring.datasource.username=postgres\n     spring.datasource.password=postgres\n     ```\n   - Ensure PostgreSQL is running and a database named `ecommerce` exists.\n3. **Build and run the application:**\n   ```bash\n   mvn clean install\n   mvn spring-boot:run\n   ```\n   The backend will start on `http://localhost:8081` by default.\n\n### Running with Docker\n1. **Build and start all services:**\n   ```bash\n   docker-compose up --build\n   ```\n   - The backend will be available at `http://localhost:8080`\n   - PostgreSQL at `localhost:5432` (user: `shopease_user`, password: `shopease_password`)\n   - pgAdmin at `http://localhost:5050` (email: `admin@shopease.com`, password: `admin123`)\n\n2. **For development mode:**\n   ```bash\n   docker-compose -f docker-compose.dev.yml up --build\n   ```\n\n### Environment Variables\n- `GOOGLE_CLIENT_ID` and `GOOGLE_CLIENT_SECRET` (for Google OAuth2)\n- See `application.properties` for more configuration options\n\n## API Overview\n\n### Authentication\n- `POST /api/auth/signin` — User login (returns JWT)\n- `POST /api/auth/signup` — User registration\n\n### Users\n- `GET /api/users` — List users (paginated)\n- `GET /api/users/{userId}` — Get user by ID\n- `PUT /api/users/{userId}` — Update user\n- `DELETE /api/users/{userId}` — Delete user\n\n### Products\n- `POST /api/products/add` — Add product\n- `GET /api/products/get-all` — List all products\n- `GET /api/products/get/{code}` — Get product by code\n\n### Shopping Cart\n- `POST /api/cart/add` — Add item to cart\n- `GET /api/cart/get-all` — View cart items\n\n### Purchases\n- `POST /api/purchases/checkout` — Checkout cart\n- `POST /api/purchases/cart/{email}` — Add multiple items to cart\n- `GET /api/purchases/get-all` — List all purchases\n\n### Quantities\n- `POST /api/quantities/add` — Add quantity\n- `GET /api/quantities/get-all` — List all quantities\n\n### GraphQL\n- GraphQL endpoint: `/graphql`\n- GraphiQL UI: `/graphiql` (if enabled)\n\n### API Documentation\n- Swagger UI: `/swagger-ui.html` (if enabled)\n\n## Development\n- Source code: `src/main/java/com/starter/mugisha/`\n- Configuration: `src/main/resources/application.properties`\n- Scripts: `scripts/` (for Docker helpers)\n- Tests: `src/test/java/com/starter/mugisha/`\n\n## Testing\n- Run tests with:\n  ```bash\n  mvn test\n  ```\n\n## License\nThis project is for educational/demo purposes. Please adapt for production use. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmugisha-pascal%2Fshopease-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmugisha-pascal%2Fshopease-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmugisha-pascal%2Fshopease-backend/lists"}