Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Latest commit

 

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

30 Days of Python Projects

A progressive, project-based Python learning path—from fundamental desktop utilities to APIs, databases, automation, and defensive security tools.

Python Projects License Maintainer

Project roadmap · Getting started · Learning workflow


Overview

30 Days of Python Projects is a hands-on learning program containing one practical project for each day. The collection gradually introduces Python fundamentals, graphical applications, file processing, network requests, third-party APIs, data persistence, web development, and defensive log analysis.

Every day includes a focused tutorial with learning goals, setup instructions, a program-flow explanation, guided experiments, an extension challenge, and a completion checklist.

Learning Stages

Stage Days Main Focus
Beginner 01–10 Python fundamentals, functions, GUI basics, files, and images
Intermediate 11–20 Application state, persistence, audio, authentication, and networking
Advanced 21–30 Bots, external APIs, databases, REST services, web apps, and security logs

Interface Guide

Interface Meaning
CLI Runs and accepts input in a terminal
Desktop GUI Opens a desktop window, mainly using Tkinter
Graphics Window Opens a drawing or animation canvas
Chat Bot Interacts through a messaging platform
REST API Exposes HTTP endpoints for another client
Web App Runs a browser-based user interface
API Client Connects to an external service
Security Tool Intended for authorized defensive or educational use

Project Roadmap

Day Project Level Interface Core Concepts
01 Calculator Beginner Desktop GUI Tkinter, functions, event handling
02 QR Code Generator Beginner CLI / File Output QR encoding, package usage, image output
03 Birthday Turtle Animation Beginner Graphics Window Turtle graphics, coordinates, animation
04 Personal Message Animation Beginner CLI Strings, terminal styling, timing
05 Notepad Beginner Desktop GUI Tkinter Text widget, save dialog, file writing
06 Personal Diary Beginner Desktop GUI Text input, timestamps, append-mode files
07 Image Converter Beginner Desktop GUI File dialogs, Pillow, image conversion
08 Color Picker Beginner Desktop GUI Color dialog, HEX/RGB, contrast
09 Screenshot Tool Beginner Desktop GUI Screen capture, canvas, image annotation
10 Image Watermark Beginner Desktop GUI Pillow, text positioning, image export
11 Multi-Function Timer Intermediate Desktop GUI Countdown state, threading, time
12 Study Timer Intermediate Desktop GUI Study/break cycles, application state
13 Smart Calendar Intermediate Desktop GUI Dates, JSON persistence, calendar widgets
14 Music Player Intermediate Desktop GUI Audio playback, controls, file selection
15 File Manager Intermediate Desktop GUI Filesystem navigation, rename, delete
16 Password Manager Intermediate Desktop GUI JSON persistence, password generation
17 Text Encrypt & Decrypt Intermediate Desktop GUI Caesar cipher, character encoding, validation
18 Register & Login Intermediate Desktop GUI Registration flow, file persistence, validation
19 Terminal QR Code Generator Intermediate CLI Terminal UI, QR rendering, input loop
20 Subdomain Hunter Intermediate CLI / Network Tool HTTP requests, parsing, wordlists
21 Telegram AI Bot Advanced Chat Bot Telegram handlers, AI responses, logging
22 ChatGPT API Client Advanced CLI / API Client HTTP requests, API headers, loading animation
23 Language Translator Advanced Desktop GUI / API Client Translation service, language selection, GUI
24 Audio Transcription Advanced Desktop GUI Microphone input, speech recognition, errors
25 Tic-Tac-Toe vs AI Advanced Desktop GUI / Game Game state, random AI, difficulty settings
26 Restaurant Management System Advanced Desktop GUI Orders, totals, tax, invoice logic
27 Expense Tracker with SQLite Advanced CLI / Database argparse, SQLite, SQL aggregation
28 Task REST API Advanced REST API FastAPI, Pydantic, CRUD, HTTP methods
29 Security Log Analyzer Advanced CLI / Security Tool Regex, log parsing, counters, thresholds
30 Task Manager with Flask & SQLite Advanced Web App / Database Flask routes, forms, CRUD, SQLite

Getting Started

Prerequisites

  • Python 3.10 or newer
  • Git
  • A code editor such as Visual Studio Code
  • Basic terminal knowledge

Clone and prepare the environment

git clone https://github.com/DzarelDeveloper/30-Days-Python-Projects.git
cd 30-Days-Python-Projects
python -m venv .venv

Activate the virtual environment:

# Linux or macOS
source .venv/bin/activate

# Windows PowerShell
.venv\Scripts\Activate.ps1

Install the shared dependencies:

pip install -r requirements.txt

Start with Day 01:

cd Day-01
python main.py

Read the README inside each day's directory before running its program. Some projects require a desktop environment, microphone, internet connection, bot token, or API credential.

Command compatibility: If python is not available on Linux or macOS, use python3 in the commands above. On Windows, the Python launcher can also be invoked with py.

Recommended Learning Workflow

  1. Read the learning goals and concepts for the day.
  2. Run the original program and observe its behavior.
  3. Read main.py from the imports to the entry point.
  4. Identify the input, processing logic, state, and output.
  5. Perform the guided experiments.
  6. Test at least one invalid or unexpected input.
  7. Complete the extension challenge before moving forward.
  8. Record what failed, why it failed, and how you fixed it.

Repository Structure

30-Days-Python-Projects/
├── Day-01/
│   ├── main.py
│   └── README.md
├── ...
├── Day-30/
│   ├── main.py
│   └── README.md
├── .gitignore
├── LICENSE
├── README.md
└── requirements.txt

Security and Responsible Use

  • Never commit passwords, API keys, bot tokens, or .env files.
  • Store credentials in environment variables.
  • Run network-related projects only against systems you own or have explicit permission to test.
  • Analyze only logs you are authorized to access.
  • Review validation, error handling, tests, and security before using educational code in production.

Contributing

Issues and pull requests are welcome. Keep projects easy to study, document new dependencies, exclude sensitive data, and test all changes.

Author

Created and maintained by Muhamad Dzarel Alghifari.

License

Licensed under the MIT License.


Learn consistently. Build practically. Improve one project every day.

About

A progressive 30-day Python learning journey with practical CLI, GUI, API, database, web, and security projects.

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages