Skip to content

umckinney/mailroom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mailroom

Python License: MIT Tests

Mailroom is an object-oriented Python application that manages a donor database for a charitable organization. It allows users to track donations, generate reports, and send thank-you messages — all from the command line.

This version reflects a refactored final implementation from a multi-week learning project. It emphasizes clean class design, test coverage, and modular structure.


🧰 Features

  • Add new donors and donations
  • Automatically update donor statistics (total, count, average)
  • Generate reports summarizing donor activity
  • Send thank-you notes
  • Deactivate donors
  • Input validation
  • Pagination logic (stretch feature)

🗂 Project Structure

mailroom/               # Main application code
  ├── __init__.py
  ├── mailroom_model.py
  ├── main.py
  └── templates.py      # Thank-you note templates

tests/                  # Pytest unit tests
  └── test_mailroom_model.py

README.md               # This file
pyproject.toml          # Project metadata & test config
.gitignore              # Ignored files and folders

🚀 Getting Started

🧱 Requirements

  • Python 3.12+
  • pip

📦 Install Dependencies (if any)

This project currently has no external dependencies. If future requirements are added, they’ll be managed via pyproject.toml.

🧪 Run Tests

cd mailroom
pytest

Or run explicitly from the tests/ directory:

cd tests
pytest test_mailroom_model.py

📸 Sample Output

| Email             | First Name | Last Name | Total Given | Gifts | Average Gift |
|------------------|------------|-----------|-------------|-------|----------------|
| test@donor.com   | Test       | Donor     | $300.00     | 3     | $100.00       |

📃 License

This project is licensed under the MIT License. See the LICENSE file for details.


🙋 Author

Uriah McKinney
🔗 GitHub: umckinney

About

Mailroom is an object-oriented Python application that manages a donor database for a charitable organization. It allows users to track donations, generate reports, and send thank-you messages — all from the command line.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages