344 lines
7.4 KiB
Markdown
344 lines
7.4 KiB
Markdown
Step-by-Step Complete Setup Guide
|
|
📋 Before We Start - Check Your Python Installation
|
|
1. Open PowerShell:
|
|
Press Windows + R
|
|
|
|
Type powershell
|
|
|
|
Press Enter
|
|
|
|
2. 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
|
|
|
|
5. 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
|
|
12. 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
|
|
|
|
13. 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"
|
|
|
|
14. 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
|
|
|
|
15. 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
|
|
|
|
16. Edit Jokes Using DB Browser:
|
|
Click on a joke in the table
|
|
|
|
Click inside any field
|
|
|
|
Change the text
|
|
|
|
Click Apply to save changes
|
|
|
|
17. Delete Jokes Using DB Browser:
|
|
Click on a joke row
|
|
|
|
Click Delete Record button (or press Delete key)
|
|
|
|
Click Apply to confirm
|
|
|
|
18. 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. |