7.4 KiB
Step-by-Step Complete Setup Guide 📋 Before We Start - Check Your Python Installation
- Open PowerShell: Press Windows + R
Type powershell
Press Enter
- Check Python Version: powershell python --version
Should show: Python 3.x.x
If that doesn't work, try:
python3 --version
Or on some systems:
py --version 📁 Create Your Project Folder 3. Navigate to Documents and Create Folder: powershell
Go to Documents folder
cd Documents
Create a new folder using format: [firstname]_[surname initial]
Example if your name is Ivan Lim:
mkdir ivan_l
Go into your new folder
cd ivan_l
Verify location
pwd 🎯 Get the Template Repository 4. Access the Template Repository: Go to: https://gitea.techshare.cc/technolyceum/ai6-m3
Find the template named: [firstname]_[surname initial]_ai6-m3
Click on the template
Click the "Clone" button and copy the URL
- Clone the Repository: powershell
Clone using the copied URL
git clone https://gitea.techshare.cc/technolyceum/ai6-m3/[firstname]_[surname initial]_ai6-m3.git
Go into the cloned folder
cd [firstname]_[surname initial]_ai6-m3 🐍 Set Up Virtual Environment 6. Create and Activate Virtual Environment: powershell
Create virtual environment
python -m venv venv
Activate it
.\venv\Scripts\Activate.ps1
If you see a security warning:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser .\venv\Scripts\Activate.ps1 ✅ Success: You should see (venv) at the start of your command line!
📝 Type Your Bot Code 7. Open Python IDLE: powershell
Open IDLE from PowerShell
python -m idlelib 8. Create app.py in IDLE: In IDLE: Click File → New File
TYPE the following code line by line:
python from telegram import Update from telegram.ext import Application, CommandHandler, MessageHandler, filters import sqlite3
TOKEN = "TEACHER_WILL_PROVIDE_THIS"
waiting = {}
async def start(update, context): await update.message.reply_text("🤣 Joke Bot!\n/joke - get joke\n/addjoke - add joke")
async def joke(update, context): conn = sqlite3.connect('jokes.db') conn.execute('CREATE TABLE IF NOT EXISTS jokes (text TEXT, user TEXT, name TEXT)') joke = conn.execute("SELECT text FROM jokes ORDER BY RANDOM() LIMIT 1").fetchone() conn.close() await update.message.reply_text(joke[0] if joke else "No jokes! /addjoke to add one")
async def addjoke(update, context): waiting[update.effective_user.id] = True await update.message.reply_text("📝 Type your joke:")
async def handle_text(update, context): user_id = update.effective_user.id if user_id in waiting: conn = sqlite3.connect('jokes.db') conn.execute('CREATE TABLE IF NOT EXISTS jokes (text TEXT, user TEXT, name TEXT)') conn.execute("INSERT INTO jokes VALUES (?, ?, ?)", (update.message.text, user_id, update.effective_user.first_name)) conn.commit() conn.close() del waiting[user_id] await update.message.reply_text("✅ Saved!") else: await update.message.reply_text("Try /start")
app = Application.builder().token(TOKEN).build() app.add_handler(CommandHandler("start", start)) app.add_handler(CommandHandler("joke", joke)) app.add_handler(CommandHandler("addjoke", addjoke)) app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_text)) print("Bot running!") app.run_polling() Click File → Save As
Navigate to your project folder
Save as: app.py
Click Save
📦 Install Dependencies 9. Install Required Package: powershell
Make sure venv is activated
pip install python-telegram-bot
Check installation
pip show python-telegram-bot 10. Create requirements.txt: powershell pip freeze > requirements.txt Get-Content requirements.txt 🗄️ Explore SQLite Database Using GUI 11. First, Create the Database File: powershell
Run your bot once to create the database
python app.py
You'll see an error about the token - that's OK
Press Ctrl+C to stop it after 2 seconds
- Install DB Browser for SQLite: Go to: https://sqlitebrowser.org/dl/
Download the standard installer for Windows
Run the installer
Follow installation steps (just click Next)
Keep all default options
- Open Your Database in DB Browser: Open File Explorer (Windows key + E)
Navigate to your project folder:
text C:\Users\YourName\Documents[firstname][surname initial][firstname][surname initial]_ai6-m3 Find jokes.db file
Double-click jokes.db
It should open in DB Browser for SQLite
If it doesn't, open DB Browser first, then click "Open Database"
- Explore Database in DB Browser: Tab 1: Database Structure See the jokes table
See the 3 columns: text, user, name
Check data types: TEXT, TEXT, TEXT
Tab 2: Browse Data Click "Browse Data" tab
Select table: jokes
See any jokes already in the table
Table will be empty at first
- Add Jokes Using DB Browser: Click "Browse Data" tab
Click New Record button (or press Insert key)
Fill in the fields:
text: Your joke (e.g., "Why did the chicken cross the road?")
user: Your user ID number (e.g., 12345)
name: Your name (e.g., "Ivan")
Click Apply button to save
Add 2-3 jokes this way
- Edit Jokes Using DB Browser: Click on a joke in the table
Click inside any field
Change the text
Click Apply to save changes
- Delete Jokes Using DB Browser: Click on a joke row
Click Delete Record button (or press Delete key)
Click Apply to confirm
- Run SQL Queries in DB Browser: Click "Execute SQL" tab
Type SQL commands:
sql -- See all jokes SELECT * FROM jokes;
-- Count jokes SELECT COUNT(*) FROM jokes;
-- See specific user's jokes SELECT * FROM jokes WHERE name = 'Ivan';
-- Add a joke via SQL INSERT INTO jokes VALUES ('What do you call a bear with no teeth? A gummy bear!', 999, 'SQLUser'); Click Execute (play button) to run
Click Write Changes to save
🔍 Quick Database Exploration Tasks Task 1: View Empty Database Open DB Browser
Open jokes.db
Check "Browse Data" tab
Table should be empty
Task 2: Add Jokes via GUI Click "New Record"
Add 3 different jokes
Use different names for each
Save all with "Apply"
Task 3: View What You Added Stay in "Browse Data" tab
Scroll to see all jokes
Notice each row has a rowid (automatic number)
Task 4: Edit a Joke Click on any joke
Change the text
Click "Apply"
Task 5: Delete a Joke Click on a joke row
Click "Delete Record"
Click "Apply"
Task 6: Use SQL Tab Go to "Execute SQL" tab
Type: SELECT COUNT(*) FROM jokes;
Click "Execute"
See result in bottom pane
🎯 What You Should See in DB Browser Database Structure: Tables: 1 table (jokes)
Columns: text, user, name (all TEXT type)
Row count: Shows at bottom
After Adding Jokes: Each row shows in table
Can sort by clicking column headers
Can filter using "Filter" box
File Size Growth: Each joke adds to file size
File updates instantly when you click "Apply"
💡 Tips for DB Browser Always click "Apply" after changes
"Write Changes" saves to disk
"Revert Changes" undoes unsaved changes
Use filter to find specific jokes
Export data if you want to backup
🔧 If Something Goes Wrong Database won't open: powershell
Delete and recreate
Remove-Item jokes.db -ErrorAction SilentlyContinue
Run bot to create fresh
python app.py
Press Ctrl+C after error
Now open in DB Browser
DB Browser not installed: Go to https://sqlitebrowser.org/dl/
Download and install
Or use online SQLite viewer
Remember: DB Browser is the easiest way to see your database. No coding needed!
Note: Teacher will provide the Telegram bot token later. For now, practice adding and viewing jokes in DB Browser.