{"id":22867967,"url":"https://github.com/smirltech/top-stock-manager","last_synced_at":"2025-03-31T10:49:24.227Z","repository":{"id":212324897,"uuid":"717893981","full_name":"smirltech/top-stock-manager","owner":"smirltech","description":"Stock Management system for a small business shop that runs locally, offline.","archived":false,"fork":false,"pushed_at":"2024-01-01T20:26:19.000Z","size":874,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-06T15:44:02.989Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dart","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/smirltech.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":"2023-11-12T22:52:35.000Z","updated_at":"2024-05-24T10:12:27.000Z","dependencies_parsed_at":"2023-12-13T18:15:12.531Z","dependency_job_id":"48edcbd1-badb-439b-b436-1fa7049ffaf1","html_url":"https://github.com/smirltech/top-stock-manager","commit_stats":null,"previous_names":["smirltech/top-stock-manager"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smirltech%2Ftop-stock-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smirltech%2Ftop-stock-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smirltech%2Ftop-stock-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smirltech%2Ftop-stock-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smirltech","download_url":"https://codeload.github.com/smirltech/top-stock-manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246458024,"owners_count":20780675,"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":"2024-12-13T12:29:42.885Z","updated_at":"2025-03-31T10:49:22.119Z","avatar_url":"https://github.com/smirltech.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# top_stock_manager\n\nStock Management system for a small shop that runs locally, offline.\n\n## Getting Started\n\nThis project is a local stock management system for a small business that buys and sells goods. This system will enable\nthem\nmanage the movement of goods, the flow of money and will also help them know if to restock which product.\n\n## Software name\n\nThe name of the software is `Top Stock Manager : Offline`\n\n## Main Features\n\nThis will be a fully fledged system that reinforce access and permissions.\nThese features involve data handling.\n\n### 1. Permissions\n\nEach action of the system will be bundled with a permission. These permissions will be preset.\n\n### 2. Roles\n\nEach user role will group a set of permissions. These permissions can overlap among roles.\nOne role will be preset and cannot be modified nor deleted, and permissions attached will not be changed.\nThis will generally be the role of `Manager`.\n\n- [x] View all roles ;\n- [x] View one role ;\n- [x] Create a role ;\n- [x] Update a role ;\n- [x] Delete a role ;\n- [x] Attach or detach permissions to a role ;\n\n### 3. Users\n\nUsers will be created and roles will be attached to them. The concept is that a user must have only one role attached.\nBut we may evolve in the logic of one user with multiple roles.\n\n- [x] View all users ;\n- [ ] View one user ;\n- [x] Create a user ;\n- [x] Update a user ;\n- [x] Delete a user ;\n- [ ] Attach or detach role to a user ;\n- [ ] Attach or detach permissions directly to a user (this is optional !) ;\n\n### 4. Products\n\nProducts will be registered. The logic is that a product can constitute a category for other products.\nE.g. `Biscuit` can be a product as well as a group of other biscuits\nlike `Mousa Biscuit`, `Eat-sum-more Biscuit`, `Vap Biscuit`, etc\n\n- [x] View all products ;\n- [ ] View one product ;\n- [x] Create a product ;\n- [x] Update a product ;\n- [x] Delete a product ;\n\n### 5. Suppliers\n\nSuppliers will be registered. Goods that are purchased will be recorded with their suppliers\n\n- [x] View all suppliers ;\n- [ ] View one supplier ;\n- [x] Create a supplier ;\n- [x] Update a supplier ;\n- [x] Delete a supplier ;\n\n### 6. Clients\n\nClients will be registered. Goods that are sold will be recorded with their clients\n\n- [x] View all clients ;\n- [ ] View one client ;\n- [x] Create a client ;\n- [x] Update a client ;\n- [x] Delete a client ;\n\n### 7. Purchases\n\nA purchase is a set of different products purchased at once, usually from the same supplier. A purchase can have no\nsupplier if that is not necessary\n\n- [x] View all purchases ;\n- [ ] View one purchase : Printable display ;\n- [x] Create a purchase ;\n- [x] Update a purchase ;\n- [x] Delete a purchase ;\n- [x] Add, edit and remove items to a purchase list ;\n\n### 8. Sales\n\nA sale is a set of different products sold at once, usually to the same client. A sale can have no client if that is not\nnecessary\n\n- [x] View all sales ;\n- [ ] View one sale ;\n- [ ] Create a sale : en cours ;\n- [ ] Update a sale : en cours ;\n- [ ] Delete a sale : en cours ;\n\n### 9. Inputs\n\nAn input is a set of many quantities of the same product purchased at once, usually many inputs done at the same time\nfrom the same supplier will constitute a purchase.\nA purchase may have only a single input, and that single input can be constituted of one item of one product.\n\n- [ ] View all inputs ;\n- [x] Create a input ;\n- [x] Update a input ;\n- [x] Delete a input ;\n\n### 10. Outputs\n\nAn output is a set of many quantities of the same product sold at once, usually many outputs done at the same time to\nthe same client will constitute a sale.\nA sale may have only a single output, and that single output can be constituted of one item of one product.\n\n- [ ] View all outputs ;\n- [ ] Create a output ;\n- [ ] Update a output ;\n- [ ] Delete a output ;\n\n## Secondary Features\n\nApart from the main features mentioned above, other features will be included.\nThese are the treatment of data.\n\n### 1. Login and Logout\n\nUsers will log in and out of the system to use it for security reason.\n\n### 2. Dashboard\n\nDashboard will display daily purchases and sales of products.\nIt will show a list of 5 most sold products.\nIt will signal products that have reached critical minimum or maximum stock.\n\n### 3. Reporting\n\n#### 1. Sales Reporting\n\nSales will be reported in different ways :\n\n- [ ] Daily reporting ;\n- [ ] Weekly reporting ;\n- [ ] Monthly reporting ;\n- [ ] Custom date range reporting ;\n\n#### 2. Purchases Reporting\n\nPurchases will be reported in different ways :\n\n- [ ] Monthly reporting ;\n- [ ] Custom date range reporting ;\n\n#### 3. Critical Stock Reporting\n\nCritical stock level will be reported in :\n\n- [ ] List reporting : indicating the product, the quantity level, percentage of the minimum level, better if above\n  1OO% ;\n\n## Other Features\n\nWe may include other features.\n\n- [ ] Printing of sale's receipt ;\n- [ ] Viewing level of sales done by a user fo a given period: e.g. a month ;\n- [ ] System software update ;\n- [ ] Developer communication with users ;\n- [ ] Developer notification to user ;\n\n## Database backup\n\nBackup features may include database exporting and importing, as well as online syncing for backup purposes only.\n\n## Database Modeling\n\n![db_model.png](db_model.png)\n\n## Technologies used\n\n### 1. Language and Framework\n\n- [x] Dart,\n- [x] Flutter 3,\n\n### 2. Platforms\n\nThe software will be compatible with :\n\n- [x] Windows\n- [x] Linux\n- [x] MacOS\n\n### 3. Packages\n\n- [x] Database : [Drift](https://pub.dev/packages/drift) (sqlite3_flutter_libs)\n- [x] Complex Relational queries : [RxDart](https://pub.dev/packages/rxdart)\n- [x] State Management : [GetX](https://pub.dev/packages/get)\n- [x] Navigation Management :  [GetX](https://pub.dev/packages/get)\n- [x] Dependencies Management :  [GetX](https://pub.dev/packages/get)\n- [x] Local Storage Manager : [GetStorage](https://pub.dev/packages/get_storage)\n- [x] Collection for indexed map : [Collection](https://pub.dev/packages/collection)\n\nThis software is the product of [Smirltech](https://www.smirltech.com) sarl\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmirltech%2Ftop-stock-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmirltech%2Ftop-stock-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmirltech%2Ftop-stock-manager/lists"}