Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions TASK2_PROMPT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Python Screening Task 2: Write a Prompt for an AI Debugging Assistant

## Prompt

You are an AI assistant helping a student debug their Python code.
Your role is to carefully analyze the provided code and guide the student by:
- Identifying possible errors, mistakes, or inefficiencies.
- Asking leading questions that encourage the student to think critically.
- Giving hints or suggestions without directly providing the full solution.
- Maintaining a supportive, educational, and beginner-friendly tone.

When responding:
- Start by summarizing what the code is attempting to do.
- Point out suspicious lines, logic, or syntax that may cause issues.
- Suggest ways the student can test or debug those parts.
- If the bug relates to common Python pitfalls (e.g., indentation, variable scope, type errors), explain the concept with a simple example (but not the exact fix).
- Encourage the student to try fixing it themselves and share their updated attempt.

---

## Reasoning

### Why I worded it this way
The wording ensures the AI acts as a **mentor** rather than giving direct answers. It emphasizes constructive feedback and guiding questions, which mirrors how a human teacher would help.

### How it avoids giving away the solution
Instead of saying *“replace X with Y”*, the prompt instructs the AI to only highlight problem areas and suggest debugging approaches (like printing variables, checking loops, or revisiting syntax).

### How it encourages helpful, student-friendly feedback
The prompt explicitly asks the AI to:
- Use a supportive tone,
- Explain concepts simply,
- Encourage student engagement (e.g., “try printing this variable and see what happens”),
which makes the interaction motivating rather than discouraging.

---

## Additional Reasoning Questions (Required by Task)

1. **Tone and Style**
- The AI should be friendly, patient, and clear. It should avoid technical jargon unless explained with simple examples.

2. **Balancing bug identification vs. guidance**
- The AI should identify likely problem spots but stop short of providing fixes. Instead, it should suggest tests or alternative approaches for the student to try.

3. **Adapting for beginner vs. advanced learners**
- For beginners: give more detailed explanations of concepts (e.g., “In Python, indentation matters because…”).
- For advanced learners: be more concise and focus on logic or optimization hints rather than syntax basics.
502 changes: 502 additions & 0 deletions venv/Scripts/Activate.ps1

Large diffs are not rendered by default.

63 changes: 63 additions & 0 deletions venv/Scripts/activate
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly

deactivate () {
# reset old environment variables
if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
PATH="${_OLD_VIRTUAL_PATH:-}"
export PATH
unset _OLD_VIRTUAL_PATH
fi
if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
export PYTHONHOME
unset _OLD_VIRTUAL_PYTHONHOME
fi

# Call hash to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
hash -r 2> /dev/null

if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
PS1="${_OLD_VIRTUAL_PS1:-}"
export PS1
unset _OLD_VIRTUAL_PS1
fi

unset VIRTUAL_ENV
unset VIRTUAL_ENV_PROMPT
if [ ! "${1:-}" = "nondestructive" ] ; then
# Self destruct!
unset -f deactivate
fi
}

# unset irrelevant variables
deactivate nondestructive

VIRTUAL_ENV="C:\Users\patil\OneDrive\workshop_booking\venv"
export VIRTUAL_ENV

_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/Scripts:$PATH"
export PATH

# unset PYTHONHOME if set
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
# could use `if (set -u; : $PYTHONHOME) ;` in bash
if [ -n "${PYTHONHOME:-}" ] ; then
_OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
unset PYTHONHOME
fi

if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
_OLD_VIRTUAL_PS1="${PS1:-}"
PS1="(venv) ${PS1:-}"
export PS1
VIRTUAL_ENV_PROMPT="(venv) "
export VIRTUAL_ENV_PROMPT
fi

# Call hash to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
hash -r 2> /dev/null
34 changes: 34 additions & 0 deletions venv/Scripts/activate.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
@echo off

rem This file is UTF-8 encoded, so we need to update the current code page while executing it
for /f "tokens=2 delims=:." %%a in ('"%SystemRoot%\System32\chcp.com"') do (
set _OLD_CODEPAGE=%%a
)
if defined _OLD_CODEPAGE (
"%SystemRoot%\System32\chcp.com" 65001 > nul
)

set VIRTUAL_ENV=C:\Users\patil\OneDrive\workshop_booking\venv

if not defined PROMPT set PROMPT=$P$G

if defined _OLD_VIRTUAL_PROMPT set PROMPT=%_OLD_VIRTUAL_PROMPT%
if defined _OLD_VIRTUAL_PYTHONHOME set PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%

set _OLD_VIRTUAL_PROMPT=%PROMPT%
set PROMPT=(venv) %PROMPT%

if defined PYTHONHOME set _OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME%
set PYTHONHOME=

if defined _OLD_VIRTUAL_PATH set PATH=%_OLD_VIRTUAL_PATH%
if not defined _OLD_VIRTUAL_PATH set _OLD_VIRTUAL_PATH=%PATH%

set PATH=%VIRTUAL_ENV%\Scripts;%PATH%
set VIRTUAL_ENV_PROMPT=(venv)

:END
if defined _OLD_CODEPAGE (
"%SystemRoot%\System32\chcp.com" %_OLD_CODEPAGE% > nul
set _OLD_CODEPAGE=
)
Binary file added venv/Scripts/coverage-3.11.exe
Binary file not shown.
Binary file added venv/Scripts/coverage.exe
Binary file not shown.
Binary file added venv/Scripts/coverage3.exe
Binary file not shown.
22 changes: 22 additions & 0 deletions venv/Scripts/deactivate.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
@echo off

if defined _OLD_VIRTUAL_PROMPT (
set "PROMPT=%_OLD_VIRTUAL_PROMPT%"
)
set _OLD_VIRTUAL_PROMPT=

if defined _OLD_VIRTUAL_PYTHONHOME (
set "PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%"
set _OLD_VIRTUAL_PYTHONHOME=
)

if defined _OLD_VIRTUAL_PATH (
set "PATH=%_OLD_VIRTUAL_PATH%"
)

set _OLD_VIRTUAL_PATH=

set VIRTUAL_ENV=
set VIRTUAL_ENV_PROMPT=

:END
Binary file added venv/Scripts/django-admin.exe
Binary file not shown.
5 changes: 5 additions & 0 deletions venv/Scripts/django-admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!C:\Users\patil\OneDrive\workshop_booking\venv\Scripts\python.exe
from django.core import management

if __name__ == "__main__":
management.execute_from_command_line()
Binary file added venv/Scripts/f2py.exe
Binary file not shown.
Binary file added venv/Scripts/numpy-config.exe
Binary file not shown.
Binary file added venv/Scripts/pip.exe
Binary file not shown.
Binary file added venv/Scripts/pip3.11.exe
Binary file not shown.
Binary file added venv/Scripts/pip3.exe
Binary file not shown.
Binary file added venv/Scripts/pyaml.exe
Binary file not shown.
Binary file added venv/Scripts/python.exe
Binary file not shown.
Binary file added venv/Scripts/pythonw.exe
Binary file not shown.
Binary file added venv/Scripts/sqlformat.exe
Binary file not shown.
5 changes: 5 additions & 0 deletions venv/pyvenv.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
home = C:\Users\patil\AppData\Local\Programs\Python\Python311
include-system-site-packages = false
version = 3.11.8
executable = C:\Users\patil\AppData\Local\Programs\Python\Python311\python.exe
command = C:\Users\patil\AppData\Local\Programs\Python\Python311\python.exe -m venv C:\Users\patil\OneDrive\workshop_booking\venv
18 changes: 18 additions & 0 deletions workshop_app/migrations/0016_auto_20250919_1340.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 3.0.7 on 2025-09-19 08:10

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('workshop_app', '0015_auto_20200727_2334'),
]

operations = [
migrations.AlterField(
model_name='profile',
name='state',
field=models.CharField(choices=[('', '---------'), ('IN-AP', 'Andhra Pradesh'), ('IN-AR', 'Arunachal Pradesh'), ('IN-AS', 'Assam'), ('IN-BR', 'Bihar'), ('IN-CT', 'Chhattisgarh'), ('IN-GA', 'Goa'), ('IN-GJ', 'Gujarat'), ('IN-HR', 'Haryana'), ('IN-HP', 'Himachal Pradesh'), ('IN-JK', 'Jammu and Kashmir'), ('IN-JH', 'Jharkhand'), ('IN-KA', 'Karnataka'), ('IN-KL', 'Kerala'), ('IN-MP', 'Madhya Pradesh'), ('IN-MH', 'Maharashtra'), ('IN-MN', 'Manipur'), ('IN-ML', 'Meghalaya'), ('IN-MZ', 'Mizoram'), ('IN-NL', 'Nagaland'), ('IN-OR', 'Odisha'), ('IN-PB', 'Punjab'), ('IN-RJ', 'Rajasthan'), ('IN-SK', 'Sikkim'), ('IN-TN', 'Tamil Nadu'), ('IN-TG', 'Telangana'), ('IN-TR', 'Tripura'), ('IN-UT', 'Uttarakhand'), ('IN-UP', 'Uttar Pradesh'), ('IN-WB', 'West Bengal'), ('IN-AN', 'Andaman and Nicobar Islands'), ('IN-CH', 'Chandigarh'), ('IN-DN', 'Dadra and Nagar Haveli'), ('IN-DD', 'Daman and Diu'), ('IN-DL', 'Delhi'), ('IN-LD', 'Lakshadweep'), ('IN-PY', 'Puducherry')], default='IN-MH', max_length=255),
),
]
138 changes: 138 additions & 0 deletions workshop_app/static/workshop_app/css/uiux.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
/* uiux.css - custom UI/UX styles for FOSSEE workshop_booking
Place at: workshop_app/static/workshop_app/css/uiux.css
*/

/* --- Global tokens --- */
:root{
--primary: #0d6efd;
--muted: #6c757d;
--page-bg: #f7f9fc;
--card-bg: #ffffff;
--max-width: 1100px;
--radius: 12px;
--shadow: 0 8px 24px rgba(15,23,42,0.08);
--small-shadow: 0 3px 10px rgba(15,23,42,0.04);
--gap: 1rem;
--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
}

html,body{
height:100%;
font-family: var(--font-sans);
background: var(--page-bg);
color: #0f1724;
-webkit-font-smoothing:antialiased;
-moz-osx-font-smoothing:grayscale;
}

/* --- Container --- */
.container-main{
max-width: var(--max-width);
margin: 0 auto;
padding: 1.5rem;
}

/* --- Navbar tweaks --- */
.navbar-brand{
font-weight:700;
letter-spacing:0.2px;
font-size:1.05rem;
}
.nav-link{
font-size:0.95rem;
}
.navbar-dark .nav-link:hover,
.navbar-dark .nav-link:focus{
text-decoration: underline;
}

/* --- Hero / content area --- */
.base-content{
padding-top: 1rem;
padding-bottom: 2.5rem;
}

/* --- Card style for workshops / lists --- */
.workshop-card{
background: var(--card-bg);
border-radius: var(--radius);
padding: 1rem;
box-shadow: var(--small-shadow);
transition: transform .16s ease, box-shadow .16s ease;
border: 1px solid rgba(15,23,42,0.03);
}
.workshop-card:hover{
transform: translateY(-6px);
box-shadow: var(--shadow);
}

/* Card title and meta */
.workshop-card h5{
font-size: 1.05rem;
margin-bottom: 0.35rem;
color: #0b1220;
}
.workshop-card .meta{
color: var(--muted);
font-size: 0.9rem;
}

/* Buttons */
.btn-primary{
background: var(--primary);
border: none;
border-radius: 8px;
padding: .45rem .85rem;
font-weight:600;
}
.btn-outline-secondary{
border-radius: 8px;
padding: .35rem .75rem;
}

/* --- Utility spacing for small screens --- */
.section-heading{
margin-bottom: .6rem;
font-weight:600;
}
.lead-text{
color: var(--muted);
margin-bottom: 1rem;
}

/* --- Responsive rules --- */
@media (max-width: 767px){
.container-main{
padding: 1rem;
}
.nav-link{ font-size:0.95rem; }
.navbar-brand{ font-size:1rem; }
.workshop-card{ padding: .9rem; }
}

/* --- Accessibility / focus states --- */
a:focus, button:focus {
outline: 3px solid rgba(13,110,253,0.14);
outline-offset: 3px;
}

/* --- Tiny helper for images --- */
.img-fluid.rounded{
border-radius: 8px;
display:block;
}

/* --- Footer --- */
.footer{
background: #fff;
border-top: 1px solid rgba(15,23,42,0.04);
}
.footer .container{
padding: 1rem 0;
}

/* --- Smooth utilities --- */
.sr-only-mobile{ display:none; }
@media (max-width: 576px){
.sr-only-mobile{ display:inline; font-size:0.95rem; color:var(--muted); }
}
Loading