> Source URL: /unit-3/project-paths/miranda-m/miranda-m-2026-04-14.guide
# Miranda's Project Guide

**Project:** PlainText Pal
**Category:** Web App (Flask) + Anthropic API
**Last updated:** April 14

---

> Note: This guide is created based on the latest state of your project repository + any notes from our discussion. It may not always reflect the most up-to-date information.

## Where You Are

Your spec is in great shape: "PlainText Pal" has a clear name, description, focused MVP features, and good inspiration references. You know what you want to build -- a website where users paste text and get readability suggestions powered by Claude.

What's missing is the scaffolding and your journal entry. Your repo currently has just the template files. The goal between now and Thursday is to get a running Flask app with a basic round-trip: paste text → get suggestions → display them.

## What We Talked About

We mapped out the architecture:

- **Flask app** -- A web form where users paste their writing
- **`pal.py`** -- Your core module that talks to Claude. The key function:
  - `def get_suggestions(text)` → returns a dictionary with:
    - `intent`: the inferred intent of the writing (e.g. "professional", "academic")
    - `suggestions`: a list of strings with readability suggestions
- **Claude API** -- Use Claude Sonnet via the Anthropic Python SDK
  - SDK docs: https://platform.claude.com/docs/en/api/sdks/python
  - Use the class API key (keep it in your code for now since the repo is private; if you ever make it public, move it to a `.env` file)

## Next Steps (Before Thursday)

1. **Scaffold your project.** Use this prompt with your agent:

   ```text
   Read my project.spec.md and the Flask setup guide at
   https://csc-121.path.app/unit-3/resources/flask-setup.guide.llm.md
   Set up my project: initialize uv, install Flask and anthropic,
   create the basic file structure, and build a minimal starting
   point I can run.
   ```

2. **Create `pal.py`.** Start with a simple version of `get_suggestions()`. Even a hardcoded response is fine as a first step -- you can wire up Claude after the Flask app works.

   ```text
   Help me create a pal.py module with a function called
   get_suggestions(text) that takes a string and returns a dictionary
   with "intent" and "suggestions" keys. Start with a version that
   calls the Anthropic API using Claude Sonnet. Here are the SDK docs:
   https://platform.claude.com/docs/en/api/sdks/python
   ```

3. **Wire it together.** Build one Flask route with a text box and a submit button. When the user submits, call `get_suggestions()` and display the results.

4. **Update your journal.** Fill in the Checkpoint 1 section of `project.journal.md` -- what you did, what's next, and any blockers.

5. **Commit and push.**

## Checkpoint 1 Readiness

By Thursday April 16th, you need:

- [x] Completed `project.spec.md`
- [ ] Project initialized with `uv` and dependencies installed
- [ ] A basic scaffolding that runs
- [ ] One tiny working feature (paste text → get suggestions → display)
- [ ] First journal entry in `project.journal.md`
- [ ] Everything committed and pushed to GitHub

## Helpful Resources

- [Flask Setup Guide](../../resources/flask-setup.guide.md) -- follow this to scaffold your project
- [Anthropic Python SDK](https://platform.claude.com/docs/en/api/sdks/python) -- reference for `pal.py`
- [Prompt Engineering Guide](../../resources/prompt-engineering.guide.md) -- useful for crafting the Claude prompt
- [Checkpoint 1 Instructions](../../projects/final-project-checkpoint-1.project.md) -- the full checkpoint requirements


---

## Backlinks

The following sources link to this document:

- [April 14 -- Checkpoint 1 prep](/unit-3/project-paths/miranda-m/miranda-m.path.llm.md)
