Interview Simulator

Annotated Bibliography

Resources are sorted by theme (alphabetically). Each source has a short annotation explaining why it was chosen and how it was used.

API and Backend Development

Pydantic. (2024). Pydantic documentation. https://docs.pydantic.dev

I used Pydantic for all request and response models so the API validated input and serialized output consistently. The docs were clear on optional fields, nested models, and custom validators; that made it straightforward to add interview-type-specific bodies and to catch bad payloads before they reached the business logic.

Tiangolo, S. (2024). FastAPI. https://fastapi.tiangolo.com

I chose FastAPI for its automatic OpenAPI docs and type-driven routing. The dependency-injection system fit how I wanted to plug in database sessions and auth; the tutorial and advanced sections covered exactly what I needed for routers, CORS, and background tasks. It held up well as the API grew.

Uvicorn. (n.d.). Uvicorn. https://www.uvicorn.org

Uvicorn was the natural choice to run the FastAPI ASGI app locally and in production. The docs are short; I used them to confirm the correct host/port and reload options for development. No issues during the capstone.

AWS and Cloud Services

Amazon Web Services. (2024). Amazon Bedrock developer guide. https://docs.aws.amazon.com/bedrock/

I relied on this for the high-level Bedrock model and the runtime API. It explained region availability, model IDs, and the difference between the Converse and InvokeModel APIs. Dense in places but accurate; I used it to decide on Claude 3 Sonnet and to handle both Messages and legacy prompt formats.

Amazon Web Services. (2024). AWS SDK for Python (Boto3). https://boto3.amazonaws.com/v1/documentation/api/latest/index.html

Boto3 was required to call the Bedrock runtime from the FastAPI backend. The API reference and the Bedrock runtime examples showed how to construct the client and invoke the model with the correct payload shape. I used it alongside the Bedrock developer guide for request/response details.

Amazon Web Services. (2024). Elastic Beanstalk developer guide. https://docs.aws.amazon.com/elasticbeanstalk/

I used this to deploy the FastAPI backend to Elastic Beanstalk. The guide covered environment variables, the Procfile, and how to load config (including get-config). It was enough to get the app running in production; I would use it again for similar deployments.

Databases and Data Modeling

PostgreSQL Global Development Group. (2024). PostgreSQL 16 documentation. https://www.postgresql.org/docs/16/

I used the PostgreSQL docs for schema and data types when designing the User and InterviewSession tables. I referenced it for foreign keys, timestamps, and nullable columns. The docs are thorough; I only needed the sections relevant to our schema.

The SQLAlchemy Authors. (2024). SQLAlchemy documentation. https://docs.sqlalchemy.org

SQLAlchemy powered the ORM and session lifecycle. I used the docs for the declarative base, engine and SessionLocal setup, and for wiring sessions into FastAPI via dependency injection. The ORM tutorial and session documentation were the most useful; Alembic was used for migrations and the SQLAlchemy docs pointed me to that workflow.

Frontend and UX

Meta. (2024). React. https://react.dev

I used the official React docs for components, hooks, and state. The new docs (react.dev) were clear on when to use state vs. props and how to structure the interview flow (setup, question, answer, feedback). I referred to them often while building the setup wizard and the dashboard.

Mozilla Developer Network. (2024). HTTP. https://developer.mozilla.org/en-US/docs/Web/HTTP

I used MDN for fetch, request/response semantics, and CORS when wiring the React frontend to the FastAPI backend. It helped debug why certain requests failed and how to send JSON and read responses. Reliable and well-explained.

LLMs and Prompting

Anthropic. (2024). Claude documentation. https://docs.anthropic.com

I used Claude’s docs to design system and user prompts for question generation and evaluation. They were especially useful for constraining output (e.g. JSON only) and for the Messages API format that Bedrock exposes. The prompt-engineering guidance influenced how I structured the rubrics and the evaluation instructions.

Amazon Web Services. (2024). InvokeModel – Bedrock runtime. https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html

I needed the exact request body shape and model IDs for invoking Claude and Llama via Bedrock. This API reference gave the structure (body, contentType, accept, modelId) and the differences between model invocation formats. Essential for getting the first successful call working.

Back to portfolio home