- Status: Complete
- Evidence:
server/countries_endpoints.py,server/states_endpoints.py,server/cities_endpoints.py,server/endpoints.py,server/app.pyregister CRUD routes for countries, states, and cities with a dozen-plus endpoints. - Requirements met: Create an API server for a geographic database; Implement CRUD operations on a related set of data; A dozen or more endpoints.
- Status: Complete
- Evidence:
data/db_connect.pyconnects locally by default and supports Atlas viaCLOUD_MONGO/ATLAS_MONGO_DB_URI;docker-compose.ymlprovisions local Mongo;docs/LocalMongoTesting.mddocuments setup. - Requirements met: Use MongoDB locally; Connect to MongoDB in the cloud.
- Status: Complete
- Evidence:
.github/workflows/main.ymlruns CI with a Mongo service on push/PR; deployments are executed through the GitHub Actions workflow to a cloud host. - Requirements met: GitHub Actions; Deployable to the cloud using CI/CD.
- Status: Complete
- Evidence: Flask-RESTX
Apiinserver/app.pyexposes Swagger UI; detailed models and@docusage acrossserver/countries_endpoints.py,server/states_endpoints.py,server/cities_endpoints.py. - Requirements met: Each endpoint documented for Swagger.
- Status: Complete
- Evidence: API tests in
server/tests/(covering CRUD, timestamps, pagination and error paths); data-layer tests indata/tests/(including cache integration); uses pytest fixtures andunittest.mockfor isolation. - Requirements met: Each endpoint and other functions have unit tests; Fancier Testing (fixtures and mocking present).
- Status: Complete
- Evidence:
data/cache.pydefines caches used indata.countries,data.states,data.cities; caching verified indata/tests/test_cache_integration.py. - Requirements met: Data cached in RAM.
- Status: Complete
- Evidence:
data/db_connect.ensure_connectiondecorator enforces Mongo connectivity with reconnect logic; applied to CRUD helpers acrossdata/db_connect.py. - Requirements met: Use Python decorators.
- Status: Complete
- Evidence:
make dev_env,requirements*.txt,README.mdsetup steps;docker-compose.ymlfor Mongo; manualflaskrun instructions. - Requirements met: Group Dev Env Working.
- Status: Complete
- Evidence: Deployed and running in the cloud via the CI workflow and cloud host configuration.
- Requirements met: Run your API server in the cloud.
- The application includes a React-based frontend for interacting with the API.
- The application uses environment variables to determine which backend server to connect to.
- The application includes automated tests to verify core UI functionality.
- The system exposes at least one HATEOAS-style response that includes navigational links to related resources.
- The system provides a developer-only endpoint that is restricted from general users.
- The system includes a load script that can populate the database with sample data for development and testing.