{"id":25832498,"url":"https://github.com/sarathiprabu/fastapiordermanagement","last_synced_at":"2026-04-16T03:31:57.389Z","repository":{"id":236387497,"uuid":"792510819","full_name":"SarathiPrabu/FastAPIOrderManagement","owner":"SarathiPrabu","description":"Developed for IS601 Web Systems Development coursework, this backend application manages dosa orders efficiently. It demonstrates web development principles using a REST API with FastAPI, Python for backend logic, and SQLite3 for database management.","archived":false,"fork":false,"pushed_at":"2024-05-02T22:12:32.000Z","size":474,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-28T23:43:55.007Z","etag":null,"topics":["fastapi","is601","json","python","rest-api","sqlite3","webdevelopment"],"latest_commit_sha":null,"homepage":"","language":"Python","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/SarathiPrabu.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-04-26T20:28:34.000Z","updated_at":"2024-06-24T21:03:59.000Z","dependencies_parsed_at":"2024-05-02T23:01:09.975Z","dependency_job_id":null,"html_url":"https://github.com/SarathiPrabu/FastAPIOrderManagement","commit_stats":null,"previous_names":["sarathiprabu/is601finalproject","sarathiprabu/fastapiordermanagement"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SarathiPrabu/FastAPIOrderManagement","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SarathiPrabu%2FFastAPIOrderManagement","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SarathiPrabu%2FFastAPIOrderManagement/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SarathiPrabu%2FFastAPIOrderManagement/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SarathiPrabu%2FFastAPIOrderManagement/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SarathiPrabu","download_url":"https://codeload.github.com/SarathiPrabu/FastAPIOrderManagement/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SarathiPrabu%2FFastAPIOrderManagement/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31870506,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"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":["fastapi","is601","json","python","rest-api","sqlite3","webdevelopment"],"created_at":"2025-02-28T21:39:42.735Z","updated_at":"2026-04-16T03:31:57.347Z","avatar_url":"https://github.com/SarathiPrabu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IS601_Final_Project\n### Dosa Restaurant API - Sarathi Prabu Mohan (sm3393)\n## Project Overview\nThis project is a REST API backend for a dosa restaurant, developed using FastAPI and SQLite. The API manages three main entities: customers, items, and orders, providing CRUD functionality for these objects.\n\n## System Design\n### Components\n- **example_orders.json:** Contains sample data for customers, items, and orders, which are used to populate our database.\n- **init_db.py:** A script that creates the tables with proper constraints and populates the sample data from `example_orders.json`.\n- **db.sqlite:** The SQLite database file where all data pertaining to the customers, items, and orders is stored. This file will be generated after running the `init_db.py` script. You can remove this file and run the script again to reset the database.\n- **main.py:** The FastAPI server that defines all endpoint logic for interacting with the database and handles CRUD operations for customers, items, and orders.\n\n### Database Design\nThe database schema includes four tables: `CUSTOMERS`, `ITEMS`, `ORDERS`, and `ORDER_LISTS`, utilizing SQLite's built-in `ROWID` as the primary key for each table. The schema is designed to enforce relational integrity with primary and foreign keys, and unique constraints where necessary:\n\n- **CUSTOMERS**: This table stores customer details. `customer_id` (leveraging `ROWID`) serves as the primary key. The mobile number is required to be unique, enforced by a UNIQUE constraint.\n- **ITEMS**: Manages details about the items available. `item_id` (leveraging `ROWID`) is the primary key.\n- **ORDERS**: Contains details of the orders. `order_id` (leveraging `ROWID`) is the primary key. This table stores the customer_id which is a foreign key reference to the CUSTOMERS table, linking each order to the respective customer. \n- **ORDER_LISTS**: Manages the relationship between `ORDERS` and `ITEMS`. It stores `order_id` and `item_id` to track which items are included in which orders. This table helps in normalizing the data where an order can contain multiple items.Foreign key references to the `ORDERS` and  `ITEMS` table.\n\n## Usage\nClone this repository and navigate to the project folder.\n\nTo initalize the database run the `init_db.py` script using the following command. If you want to reset the databse remove `db.sqlite` file and run this script.\n```bash\npython3 init_db.py\n```\nTo start the FastAPI \n```bash\nuvicorn main:app --reload\n```\nThis command will start the FastAPI server. By default, you can access  at `http://localhost:8000/` followed by endpoints. \nTo learn more about the endpoints, access the FastAPI documentation at `http://localhost:8000/docs`. You can also interactively test this API using FastAPI `docs` page.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsarathiprabu%2Ffastapiordermanagement","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsarathiprabu%2Ffastapiordermanagement","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsarathiprabu%2Ffastapiordermanagement/lists"}