{"id":22294795,"url":"https://github.com/tkd-alex/ops-onlineplannerservice","last_synced_at":"2026-04-29T20:34:59.955Z","repository":{"id":38489666,"uuid":"282655097","full_name":"Tkd-Alex/OPS-OnlinePlannerService","owner":"Tkd-Alex","description":"A web application for help the customer to ask a reservation to his favorite commercial business","archived":false,"fork":false,"pushed_at":"2022-06-03T03:56:03.000Z","size":41573,"stargazers_count":0,"open_issues_count":5,"forks_count":1,"subscribers_count":0,"default_branch":"restyling","last_synced_at":"2025-10-18T05:21:38.984Z","etag":null,"topics":["angular","calendar","fullstack","mysql","peewee-orm","planning","project","python","university","webdevelopment"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/Tkd-Alex.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}},"created_at":"2020-07-26T13:25:15.000Z","updated_at":"2020-08-31T16:12:46.000Z","dependencies_parsed_at":"2022-08-28T05:51:25.510Z","dependency_job_id":null,"html_url":"https://github.com/Tkd-Alex/OPS-OnlinePlannerService","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Tkd-Alex/OPS-OnlinePlannerService","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tkd-Alex%2FOPS-OnlinePlannerService","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tkd-Alex%2FOPS-OnlinePlannerService/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tkd-Alex%2FOPS-OnlinePlannerService/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tkd-Alex%2FOPS-OnlinePlannerService/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tkd-Alex","download_url":"https://codeload.github.com/Tkd-Alex/OPS-OnlinePlannerService/tar.gz/refs/heads/restyling","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tkd-Alex%2FOPS-OnlinePlannerService/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32443564,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T20:22:27.477Z","status":"ssl_error","status_checked_at":"2026-04-29T20:22:26.507Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["angular","calendar","fullstack","mysql","peewee-orm","planning","project","python","university","webdevelopment"],"created_at":"2024-12-03T17:38:50.418Z","updated_at":"2026-04-29T20:34:59.938Z","avatar_url":"https://github.com/Tkd-Alex.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# :date: OPS - Online Planner Service\n\nThis web application was developed for help the commercial business to manage their reservations. The owner must be follow the setup section and deploy on own server. After that the admins can be manage all the reservations and the customers can create a new user and ask for new / manage appointment. Contributes are welcome 😄\n\nSome of the technologies used\n\n- https://github.com/pallets/flask\n- https://github.com/coleifer/peewee\n- https://github.com/angular/angular\n___\n- https://github.com/mattlewis92/angular-calendar\n- https://github.com/vimalloc/flask-jwt-extended\n- https://github.com/flask-restful/flask-restful\n- https://github.com/ColorlibHQ/AdminLTE\n\n\n## Setup\n### Backend\n\n**[Important!] Make sure to have a mysql database property setup and a empty database**\n\n1. `cd backend`\n2. Create the virtualenv: `virtualenv -p python3 env`\n3. Activate the venv: `source env/bin/activate`\n4. Install all requirements: `pip install -r requirements.txt`\n\n**Settings**\n1. Generate the salt for password encryption\n```python\npython\n\u003e\u003e\u003e import bcrypt\n\u003e\u003e\u003e bcrypt.gensalt(10)\nb'$2b$10$5Ij/lH/3/NcJSPMkf.AKPe'  # Example ...\n```\n2. Copy the .dist setting to settings.json `cp settings.json.dist settings.json`\n3. Edit the settings.json file like this example:\n```js\n{\n\t\"EMAIL\": {\n\t\t\"SMTP\": \"smtp.gmail.com\",\n\t\t\"PORT\": 587,\n\t\t\"EMAIL\": \"youbestemail@gmail.com\",\n\t\t\"PASSWORD\": \"youbestpassword (i hope)\"\n\t},\n\t\"SALT\": \"$2b$10$5Ij/lH/3/NcJSPMkf.AKPe\",\n\t/* Copy only the string and not the bytes char (b) */\n\t\"JWT_SECRET_KEY\": \"lxVYbvu7ZwFNlt1gkx9K\",\n\t/* You can generate a random password here: https://passwordsgenerator.net */\n\t\"DATABASE\": {\n\t\t\"NAME\": \"ops\",\n\t\t\"USER\": \"root\",\n\t\t\"PASSWORD\": \"root\",\n\t\t\"HOST\": \"127.0.0.1\",\n\t\t\"PORT\": 3306\n\t}\n}\n```\n4. Create the first business and admin just execute the `python initdb.py` and follow the steps\n5. Start the service (with venv activate): `python main.py`\n\n\n### Frontend\n\n1. Navigate to folder: `cd frontend`\n2. Install all node_mdoules: `npm i`\n3. If you are out of localhost edit the *API_ENDPOINT* variable located at: `src/app/common/constants.ts`\n4. Start the service: `ng serve --open` or build the project and host on a web server\n\n## Database schema\n![schema](./images/dbschema.png)\n\n## Screenshot and description\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb style=\"font-size: 18px\"\u003eCommon area\u003c/b\u003e: \u003c/summary\u003e\n\n![homepage](./images/homepage.png)\n![login](./images/login.png)\n![register](./images/register.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb style=\"font-size: 18px\"\u003eAdmin\u003c/b\u003e: \u003c/summary\u003e\n\nHere the admin can set up a general info for business activity and set the timetable of the store.\n\n\u003cdetails\u003e\n\u003csummary\u003eScreenshot\u003c/summary\u003e\n\n![business](./images/business.png)\n\n\u003c/details\u003e\n\n___\n\n\nIn this page the admin can create/edit/delete the services offered by the business.\\\nEach service must have a name and can have description, duration and price.\n\n\u003cdetails\u003e\n\u003csummary\u003eScreenshot\u003c/summary\u003e\n\n![services](./images/services.png)\n\n\u003c/details\u003e\n\n___\n\n\nThe core of the project. \\\nThe calendar where the admin can see all reservation and create a new one or edit a existing reservation. \\\nWith the edit option obviously the admin can approve or reject the reservation.\n\n\u003cdetails\u003e\n\u003csummary\u003eScreenshot\u003c/summary\u003e\n\n![plans1](./images/plans1.png)\n![plans2](./images/plans2.png)\n![plans3](./images/plans3.png)\n![plans4](./images/plans4.png)\n\n\u003c/details\u003e\n\n___\n\n\nIn this page the admin can search for a customer, see the related info and the reservation history.\n\n\u003cdetails\u003e\n\u003csummary\u003eScreenshot\u003c/summary\u003e\n\n![customers](./images/customers.png)\n\n\u003c/details\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb style=\"font-size: 18px\"\u003eUser\u003c/b\u003e: \u003c/summary\u003e\n\nThe user dashboard is a small version of plans page for admin, obviously with less privileges.\n\n\u003cdetails\u003e\n\u003csummary\u003eScreenshot\u003c/summary\u003e\n\n![dashboard](./images/dashboard.png)\n\n\u003c/details\u003e\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftkd-alex%2Fops-onlineplannerservice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftkd-alex%2Fops-onlineplannerservice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftkd-alex%2Fops-onlineplannerservice/lists"}