Skip to content

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.

License

Notifications You must be signed in to change notification settings

umckinney/social-network-simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Social Network Simulator

Python License: MIT Code Style: Black Test Coverage Last Updated Made with ❤️


Overview

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.


Features

  • 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

Quick Start

  1. Clone the repository:
git clone https://github.com/your-username/social-network-simulator.git
cd social-network-simulator
  1. Set up a virtual environment:
python3.12 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
  1. Launch the CLI interface:
python menu.py
  1. Launch the API server:
python api.py

Testing

This project uses unittest with >85% test coverage. Run all tests with:

python -m unittest discover tests

Technologies Used

  • Python 3.12
  • Dataset (SQLite wrapper)
  • Flask + Flask-RESTful
  • Loguru (logging)
  • Unittest + Mock
  • Email-validator

License

This project is licensed under the MIT License.

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages