{"id":18872984,"url":"https://github.com/18alantom/flask_test_movr","last_synced_at":"2026-04-09T22:56:16.230Z","repository":{"id":130600306,"uuid":"338397172","full_name":"18alantom/flask_test_movr","owner":"18alantom","description":"A simple webapp.","archived":false,"fork":false,"pushed_at":"2021-02-17T14:39:06.000Z","size":1496,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-31T00:29:24.573Z","etag":null,"topics":["flask","material-ui","mysql","react","webapp"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/18alantom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-02-12T18:14:12.000Z","updated_at":"2023-03-04T09:38:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"8d2f140f-f959-48db-9c53-cf5f657b94ea","html_url":"https://github.com/18alantom/flask_test_movr","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/18alantom%2Fflask_test_movr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/18alantom%2Fflask_test_movr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/18alantom%2Fflask_test_movr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/18alantom%2Fflask_test_movr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/18alantom","download_url":"https://codeload.github.com/18alantom/flask_test_movr/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239824981,"owners_count":19703199,"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":["flask","material-ui","mysql","react","webapp"],"created_at":"2024-11-08T05:33:19.979Z","updated_at":"2026-02-16T02:30:17.383Z","avatar_url":"https://github.com/18alantom.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flask_test_movr\n![Movr](ss/logo.png)\n\nA simple webapp called **`movr`** made using `flask`, `MySQL` for the backend, `React` for the frontend and `Material-UI` for react compoents.\n\n---\n\n## Usage/Function \n- Products are added into a list by clicking the **+** button in the *PRODUCTS* pane, similarly for *LOCATIONS*, \n- Once products or locations are added, they can be deleted and their names can be changed.\n- *MOVE PRODUCTS* is used for moving products into a location, or out of a location, or from one location to another, the quantity has to be specified.\n- Quantity restraints and tally is maintained by using a MySQL `trigger`.\n- *TRANSACTIONS* shows all the product movements, *Elsewhere* denotes null at one of the locations (either 'from' or 'to').\n- *INVENTORY* shows how much of what product is present at each location.\n\n## Frontend\nAll panes in the ui can contract and expand except the *MOVE PRODUCTS* section.\n- Here all panes have been collpased. ![Collapsed](ss/collapsed.png)\n- All the panes have been expanded and an entry is being made in the locations column. ![Expanded](ss/expanded.png)\n- Tooltips show the date and time of a transaction, there's also other stuff like error messages. ![GUI gif](ss/example.gif)\n\n## Backend\n- The `create_db.sql` file is used to create the database, tables and trigger.\n- A class `DBConnectionHandler` maintains i/o with the database using [PyMySql](https://github.com/PyMySQL/PyMySQL).\n\n## Running the code in dev mode\n- **server**\n  - Install packages in `requirements.txt` using `pip`.\n  - Install MySQL, source the `create_db.sql` file, (the file can alternatively be read and executed using a python script).\n  - Update the `server/.env` file with the appropriate values (see the `os.getenv` calls in `app.py`).\n  - `$ flask run`\n- **frontend**\n  - `$ npm install` to install the packages in `package.json`\n  - Edit the `movr/.env` and point it to the flask server address.\n  - `$ npm start` to start the front end.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F18alantom%2Fflask_test_movr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F18alantom%2Fflask_test_movr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F18alantom%2Fflask_test_movr/lists"}