Final project
The solo capstone project for IS 4010
Overview
The final assessment is your chance to build something you actually want to build. You will design and ship a command-line application of your own choosing, in either Python or Rust, from scratch. There is no provided starter code and no prescribed problem to solve — that creative decision is entirely yours.
The goal is simple: demonstrate that you can take an idea, structure it as a real software project, write code that works, test it, document it, and deliver it through a professional workflow. Think of this as your first real portfolio piece.
Pick something you would actually use. A few sparks to get you thinking:
- A task manager or habit tracker that reads/writes a local file
- A unit converter, tip calculator, or other handy math tool
- A word count / text analyzer that reads from a file or stdin
- A quiz or flashcard app driven by a JSON data file
- A personal finance tracker that logs income and expenses
- A weather CLI that fetches data from a free public API
- A note-taking tool that saves and searches plain-text notes
- A random generator (passwords, usernames, dice rolls, story prompts)
- A sports or stock stats fetcher using a public API
Keep scope small. A polished, well-tested tool that does one thing well is far more impressive than a sprawling project that barely works.
Minimum requirements
Your project must meet all of the following requirements to receive full credit.
1. GitHub repository
Your project must live in a public GitHub repository that you created for this project (not a fork of a course repo). The repo must show a meaningful commit history — commit early and often throughout development.
2. README
Your README.md must be thorough and written for someone who has never seen your project. At minimum it must include:
- What it does — a clear, one- to two-paragraph description of your tool and the problem it solves
- Installation — step-by-step instructions for installing dependencies and/or building the project
- Usage — how to run the program, with concrete command examples and expected output
- Examples — at least two or three realistic usage examples showing different features or flags
- Known limitations or future ideas (optional but encouraged)
3. Tests
Your project must include a meaningful test suite:
- Python: use
pytestwith at least five tests covering core logic - Rust: use Rust’s built-in
#[test]framework with at least five tests covering core logic
Tests should cover real behavior — not just that the program runs, but that it produces correct output for known inputs. Edge cases and error handling are fair game.
4. CI/CD pipeline
Your repository must include a GitHub Actions workflow (.github/workflows/) that automatically runs your test suite on every push to main. The workflow should:
- Install dependencies (if any)
- Build the project (Rust only)
- Run all tests
- Pass cleanly on your final submission
5. AGENTS.md
Include an AGENTS.md file in the root of your repository documenting how you used AI tools during development. This is not a formality — write honestly about where AI helped, where it steered you wrong, and what you learned from the collaboration.
Grading rubric
Your project is worth 35 points (20% of your course grade).
| Component | Points | What we’re looking for |
|---|---|---|
| Functionality | 10 | The program runs without errors, solves the stated problem, and handles bad input gracefully |
| Code quality | 8 | Code is readable, well-organized, and idiomatic for the chosen language |
| Tests | 7 | Test suite is meaningful, covers core logic and edge cases, and all tests pass |
| README | 5 | Clear, complete, and accurate — a stranger could install and use the tool from the README alone |
| CI/CD pipeline | 5 | Workflow runs and passes on every push; no manual steps required to verify tests |
| Total | 35 |
Partial credit is available within each component. A project that is mostly complete but missing one piece (e.g., tests exist but CI is broken) will not lose full points for that category. Show your work and explain anything incomplete in your README.
Key dates
- Project proposal: Not required — just start building!
- Final submission: Sunday, May 3, 2026 at 11:59 PM
Submit a link to your public GitHub repository via Canvas by the deadline.
Submission checklist
Before submitting, verify the following:
You are encouraged to use AI as your co-pilot on this project — that is a skill this course was designed to build. However, you are the pilot. You must be able to explain every line of code in your final submission. Submitting code you do not understand is academic misconduct and subject to the Two Strikes Policy outlined in the syllabus.