Files
052-instagram-followers/README.md
2026-11-04 12:13:13 +08:00

4.1 KiB

🚀 Instagram Followers

A Python Selenium bot from Day 52 of Udemy's "100 Days of Code: The Complete Python Pro Bootcamp": it logs in to the Share-a-Naan mock service, opens a target account and follows each of its followers. It is for course participants who want readable, runnable code and for visitors looking for ideas.

📚 Table of Contents

🧭 Overview

The assignment has five steps: get credentials, create the InstaFollower class, log in, find the followers of the target account and follow them. The code keeps the assignment's names (InstaFollower, login, find_followers, follow).

  • src/instagram_followers/ holds the bot in clean-architecture layers (domain, application, infrastructure, presentation) and constants.py.
  • tests/ holds the pytest tests, which use a fake driver and need no browser or network.
  • docs/ holds the project documents and the wiki (English, Danish and Bahasa Malaysia).

The bot targets the mock service Share-a-Naan. Running bots against the real Instagram can get an account banned and is not supported.

📋 Requirements

  • Python 3.13 or newer.
  • Google Chrome (Selenium 4 downloads a matching driver by itself).
  • A Share-a-Naan account from the mock dashboard (https://app.100daysofpython.dev/).

🛠️ Setup

Create and use a local virtual environment named .venv, then upgrade pip and install the project with its test tools.

python -m venv .venv

Activate it (Windows PowerShell: .venv\Scripts\Activate.ps1; Git Bash, Linux, macOS: source .venv/bin/activate or source .venv/Scripts/activate).

python -m pip install --upgrade pip
python -m pip install -e ".[dev]"

Credentials are read from environment variables, never from the code. Do not commit a .env file; it is ignored by git.

export INSTA_USERNAME="your_email"
export INSTA_PASSWORD="your_password"

▶️ Run

python -m instagram_followers.presentation.main

Run it sparingly and log out between test runs by hand.

🧪 Tests

python -m pytest

API documentation can be generated with doxygen Doxyfile (output in docs/doxygen/).

📄 License

AGPL-3.0, see LICENSE.

📎 Appendix: Project documents

The documents a newcomer needs, in reading order.

Document What it tells you
AGENTS.md The rules AI agents follow in this repository
Business Case Why the project exists, its scope and success criteria
Stakeholder Analysis Who is involved; the stakeholder IDs used for owners and reviewers
Project Plan The gateways and their schedule
Milestones One document per gateway: Go/No-Go criteria and tasks
Artifact registry Where each artifact type lives, the next version, the PO language and domain
Domain dictionary The PO terms and the IT terms
Traceability matrix How the artifacts link and when each was last reviewed
Framework README The framework this project uses
Framework changelog What changed in each framework release