{"id":24926212,"url":"https://github.com/dulip-sameera/salespoint-server","last_synced_at":"2025-03-28T12:13:47.598Z","repository":{"id":241963847,"uuid":"805538993","full_name":"dulip-sameera/salespoint-server","owner":"dulip-sameera","description":null,"archived":false,"fork":false,"pushed_at":"2024-12-16T00:31:49.000Z","size":126,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-02T12:43:11.042Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/dulip-sameera.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-05-24T19:58:00.000Z","updated_at":"2025-01-28T08:00:54.000Z","dependencies_parsed_at":"2024-12-12T19:38:23.530Z","dependency_job_id":null,"html_url":"https://github.com/dulip-sameera/salespoint-server","commit_stats":null,"previous_names":["dulip-sameera/salespoint-server"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dulip-sameera%2Fsalespoint-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dulip-sameera%2Fsalespoint-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dulip-sameera%2Fsalespoint-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dulip-sameera%2Fsalespoint-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dulip-sameera","download_url":"https://codeload.github.com/dulip-sameera/salespoint-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246026111,"owners_count":20711581,"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-02-02T12:43:12.381Z","updated_at":"2025-03-28T12:13:47.577Z","avatar_url":"https://github.com/dulip-sameera.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Welcome to SalesPoint API\n\nThis project is a Point-of-Sale (POS) system developed using the Spring MVC framework, which is a widely used, robust framework for building Java-based web applications. The application follows the Model-View-Controller (MVC) design pattern, which helps in organizing the code into three main layers:\n\n  1. **Model**: The data structure and business logic are handled here.\n  2. **View**: The front-end part, which interacts with users.\n  3. **Controller**: Manages the interaction between the Model and View, processing user input and returning responses.\n\nThe View is a React based web application.\n\nThe system leverages MySQL as its database management system, providing a reliable and scalable solution for storing and managing user information, inventory, and sales records. MySQL ensures that all data is consistently stored, and allows for easy queries and updates to the system’s datasets.\n\n## Key Features:\n\n1. Secure API Endpoints: All endpoints exposed by the system are secured to ensure that only authorized users can         interact with the system. This is achieved through authentication and authorization mechanisms, ensuring that only     valid users with the correct permissions can access sensitive information such as sales records, user management,      and inventory adjustments.\n  \n2. Authentication and Authorization: The system employs security features such as JWT (JSON Web Tokens) which require users to log in and verify their identity before accessing the API. This ensures that every request is validated, and only users with the necessary roles.\n\n3. User Roles and Permissions: The POS system supports multiple user roles with different levels of access. The           authorization mechanism ensures that users can only access and perform actions permitted for their roles.\n   The Roles : SUPER_ADMIN, ADMIN, MANAGER, CLERK, CASHIER\n\n## Security Machenisms:\n- JWT Authentication: When a user logs in, a secure JWT token is generated. This token is sent with every subsequent API request to authenticate and authorize the user.\n- Role-based Access Control(RBAC) - Based on the user's role the system enforce access control that restrict or allow acctions on different parts of the application\n- Data Encryption: All the passwords are encrypted before storing in the database\n\n## Purposes of developing this project\n- Gaining insight into Layered Architecture and the MVC design pattern.\n- Learning how to manage relationships between entities effectively.\n- Enhancing skills in using Spring Boot, Spring Data JPA, and Spring Security.\n\n## Tech Stack\n- Spring Boot\n- Spring Security\n- Spring Data JPA\n- Lombok\n\nWhen running the project fill the `application.properties` with correct values.\n\nFor API Documentation click [here](https://documenter.getpostman.com/view/17128627/2sAYHzF39Z).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdulip-sameera%2Fsalespoint-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdulip-sameera%2Fsalespoint-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdulip-sameera%2Fsalespoint-server/lists"}