{"id":29296318,"url":"https://github.com/ywindows98/tested_rest_api_application","last_synced_at":"2025-07-06T15:12:08.565Z","repository":{"id":283320696,"uuid":"943978945","full_name":"ywindows98/Tested_REST_API_Application","owner":"ywindows98","description":"A tested full-stack web application that uses modern technologies and best practices. This project integrates a Python-based backend using Flask and SQLAlchemy, a simple but dynamic React frontend for a demonstration, and a PostgreSQL database—all containerized using Docker.","archived":false,"fork":false,"pushed_at":"2025-03-19T17:03:54.000Z","size":69,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-06T15:12:07.051Z","etag":null,"topics":["automated-testing","backend","crud-application","docker","flask","postgresql","pytest","python","rest-api","sqlaclhemy","test-driven-development","unittest","web-application"],"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/ywindows98.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,"zenodo":null}},"created_at":"2025-03-06T15:27:46.000Z","updated_at":"2025-03-20T16:42:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"5d547ca0-d911-4a52-be66-cb888501734c","html_url":"https://github.com/ywindows98/Tested_REST_API_Application","commit_stats":null,"previous_names":["ywindows98/tested_crud_application","ywindows98/tested_rest_api_application"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ywindows98/Tested_REST_API_Application","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ywindows98%2FTested_REST_API_Application","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ywindows98%2FTested_REST_API_Application/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ywindows98%2FTested_REST_API_Application/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ywindows98%2FTested_REST_API_Application/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ywindows98","download_url":"https://codeload.github.com/ywindows98/Tested_REST_API_Application/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ywindows98%2FTested_REST_API_Application/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263922679,"owners_count":23530341,"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":["automated-testing","backend","crud-application","docker","flask","postgresql","pytest","python","rest-api","sqlaclhemy","test-driven-development","unittest","web-application"],"created_at":"2025-07-06T15:12:05.742Z","updated_at":"2025-07-06T15:12:08.558Z","avatar_url":"https://github.com/ywindows98.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tested Full-Stack Dockerized Web Application\n\nA tested full-stack web application that uses modern technologies and best practices. This project integrates a Python-based backend using Flask and SQLAlchemy, a simple but dynamic React frontend for a demonstration, and a PostgreSQL database—all containerized using Docker. Tests have been implemented for the backend to ensure reliability using unittest and pytest.\n\n---\n\n## Project Purpose \n\nThe primary goal of this project was to explore and master a variety of new technologies and methodologies. Through this project, I aimed to:\n\n- **Expand Technical Expertise:**  \n  Experiment with and integrate technologies such as Python (Flask, SQLAlchemy, unittest, pytest), React, PostgreSQL, Docker. I also aimed to build a solid project architecture, use design patterns throughout the code and apply best-practice recommendations for software development and testing.\n  \n- **Embrace Test-Driven Development (TDD):**  \n  Implement automated tests using unittest and pytest to ensure high code quality, reliability, and to adopt TDD practices as a core part of the development process.\n\nThis project is a testament to my commitment to continuous learning, improving my skills in using modern technologies, software development and testing methods.\n\n---\n\n## Features\n\n- **Modular Architecture:** Clear separation between backend, frontend, and database.\n- **Backend:** Built with Python, Flask, and SQLAlchemy.\n- **Frontend:** Developed in React with JavaScript.\n- **Database:** Utilizes PostgreSQL for data storage.\n- **Containerization:** Docker and Docker Compose.\n- **Testing:** Integrated unittests for the backend to ensure quality.\n- **Automation Scripts:** Bash scripts (`start-app.sh` and `end-app.sh`) simplify starting and stopping the entire application.\n\n---\n\n### How to Use\n\n1. **Clone the Repository:**\n2. **Start the Application:**\nUse the provided bash script to build and run the Docker containers: ```./start-app.sh```. Tests for the backend are run automatically before backend launch.\n\n\n4. **Accessing the App:**\nOnce started, the backend will be available on its configured port 5000 on localhost, and the frontend on port 3000 on localhost.\n\n5. **Stopping and Cleaning Up:**\nWhen you're ready to stop the application and clear the Docker environment, use the provided bash script: ```./end-app.sh```. This script stops all running containers and removes them along with any associated networks and volumes.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fywindows98%2Ftested_rest_api_application","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fywindows98%2Ftested_rest_api_application","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fywindows98%2Ftested_rest_api_application/lists"}