Hi! I'm Dan 👋. This repo is my Python learning log: I started from zero and I'm documenting every project, exercise, and new thing I learn along the way. It keeps growing little by little, so if you come back later there's probably something new.
- 4 projects, organized in a modular way, from the most basic to the most advanced
- Nested interactive menu system to navigate the exercises
- Clear progression: fundamentals → practical exercises → integrative project → API with a database
- Latest project: Trackit, a CRUD built with FastAPI + SQLAlchemy
- Code commented in Spanish, explaining the "why" and not just the "what"
| Folder | Description | Main files |
|---|---|---|
📁 Introduccion/ |
🐣 Python fundamentals | AprendiendoPython.py, EjerciciosBasicos.py, EjerciciosCondicionales.py |
📁 PrimerProyecto/ |
🔧 Practical exercises / validators | ValidarContrasena.py, ClasificarEdad.py, VerificadorVotacion.py, numeros.py |
📁 SegundoProyecto/ |
🧁 Integrative project: Kokomi Bakery | DataBase.py, Pedidos.py |
📁 CRUD-python/ |
🗃️ Trackit: CRUD with FastAPI + SQLAlchemy | main.py, trackit.db |
📄 main.py |
Repo's main menu | — |
Basic Python concepts: variables, data types, operators, conditionals, and loops.
Practical exercises focused on validation: passwords, age classification, voting eligibility checks, and number handling.
My first integrative project: an order system for a bakery, using dictionaries as the data structure for products, stock validation, and price calculation.
The most recent project and the biggest step up so far: an API built with FastAPI to keep track of where you left your belongings. It uses SQLAlchemy with Object-Oriented Programming to define the data model and persist it in an SQLite database (trackit.db). It implements all 4 CRUD operations:
POST /item/— create an itemGET /items/— list all itemsGET /item/{item_id}— get an item by IDPUT /item/{item_id}— update an itemDELETE /item/{item_id}— delete an item
- Basic syntax: variables, data types, operators
- Basic I/O:
input(),print(), f-strings - Type conversion:
int(),float(),str() - Arithmetic, compound, and comparison operators
- Conditionals:
if,elif,else - Loops:
while, control with boolean flags - Boolean logic:
and,or, compound conditions
- Functions: definition, parameters, return values
- Modules: importing and organizing by folder
- Interactive menus: nested navigation systems
- Dictionaries as the data structure for products
- Stock and product-existence validation
- Price and available-quantity calculations
- Basic in-memory persistence
- FastAPI for exposing REST endpoints
- SQLAlchemy (ORM) + Object-Oriented Programming to model data
- Real persistence in an SQLite database
- Session handling and error handling with
HTTPException - Full CRUD: create, read, update, and delete
python main.pyRequires Python 3.8+.
cd CRUD-python
pip install fastapi sqlalchemy uvicorn
uvicorn main:app --reloadThen open http://127.0.0.1:8000/docs to test the endpoints from FastAPI's interactive documentation.
I keep updating this repo as I learn new things, with the goal of building something bigger and more solid over time.
- Using
try/exceptexceptions - Object-Oriented Programming (OOP)
- Pandas and NumPy
- Larger, nested dictionaries
- Codeforces problems solved with explanations in comments
- More modular, scalable projects
Maybe it's not much, but it's humble hehe xddd
— Dan :D