Social Network Simulator is a layered, test-driven CLI + API project built in Python 3.12 to model a lightweight social networking platform. It supports user, status, and picture records, tag-based reconciliation, and exposes a RESTful API using Flask.
This project complements the Architecture Documentation, which provides detailed breakdowns of layers, responsibilities, and test coverage.
- Command-line and web-based (REST API) interfaces
- CRUD for Users and Statuses
- Picture read/reconcile support via tag-driven folder structure
- Cascading deletes (e.g., delete user → delete associated statuses and pictures)
- Structured logging with Loguru
- Validation layer with normalization and field checks
- JSON/CSV import-export support
- Clone the repository:
git clone https://github.com/your-username/social-network-simulator.git
cd social-network-simulator- Set up a virtual environment:
python3.12 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt- Launch the CLI interface:
python menu.py- Launch the API server:
python api.pyThis project uses unittest with >85% test coverage. Run all tests with:
python -m unittest discover tests- Python 3.12
- Dataset (SQLite wrapper)
- Flask + Flask-RESTful
- Loguru (logging)
- Unittest + Mock
- Email-validator
This project is licensed under the MIT License.