Requirements Specification Template¶
This template helps interns define the scope and details for their command-line CRUD project. Refer to the lessons in Module M01 for guidance on Python scripting, SQL usage, and basic algorithms.
1. Project Overview¶
Briefly describe the goal of the application and the problem it solves. Keep it to a few sentences.
2. Scope¶
In Scope¶
- Features the application will include. At minimum:
- Command-line interface written in Python 3.8+.
- Persistent storage using SQLite or PostgreSQL.
- Ability to Create, Read, Update, and Delete records.
- Basic input validation and error handling.
Out of Scope¶
- Anything the project will explicitly not cover (e.g., graphical UI, web deployment, user authentication).
3. Functional Requirements¶
List the specific behaviors the system must support. Example requirements:
1. The user can initialize the database from the command line.
2. The system stores records in a table similar to the contacts example from the SQL lesson.
3. Users can list all records sorted by a chosen column.
4. The app logs actions to a text file for troubleshooting.
5. Code should be organized into functions and classes as demonstrated in the Python and OOP lessons.
4. User Stories¶
Describe expected interactions from the perspective of the user. - As a user, I want to add new records so that my data is stored in the database. - As a user, I want to edit an existing record so I can correct mistakes. - As a user, I want to view a list of records with optional filtering or sorting. - As a user, I want to remove records that are no longer needed.
Feel free to add more user stories that fit your specific project idea (e.g., Task Tracker, Bird Log).
5. Acceptance Criteria¶
Define the testable conditions that determine when the project is complete. - [ ] Database schema matches the specification and can be created with a single command. - [ ] CRUD operations work from the command line without crashing. - [ ] Data persists between runs of the application. - [ ] Git history shows incremental commits following the workflow in the Git walkthrough lesson. - [ ] Documentation explains how to set up and run the project.
6. Additional Notes¶
- Reference any algorithms or data structures implemented from Lesson 03.
- Include diagrams using Mermaid if they help illustrate relationships or workflows.
Use this template as a starting point. Fill in each section with details specific to your project before submitting your requirements document.