forked from DawaTshering001/demoapp2001
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathseed-dev-data.py
More file actions
129 lines (118 loc) · 5.43 KB
/
seed-dev-data.py
File metadata and controls
129 lines (118 loc) · 5.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/usr/bin/env python3
"""
Development data seeding script
Creates a default user and sample tasks for development convenience
"""
import sys
import os
from datetime import datetime, date
sys.path.append('/app')
def seed_development_data():
try:
from app import app, db
from models import User, Task
from werkzeug.security import generate_password_hash
with app.app_context():
# Create tables if they don't exist
db.create_all()
print('✅ Database tables created')
# Check if default user exists
default_user = User.query.filter_by(username='demo').first()
if not default_user:
# Create default development user
demo_user = User(
username='demo',
email='demo@taskmanager.dev',
password_hash=generate_password_hash('demo123')
)
db.session.add(demo_user)
db.session.commit()
# Create sample tasks
sample_tasks = [
# Pending tasks
Task(
title='Learn Docker fundamentals',
description='Complete the Docker workshop exercises and understand containerization concepts',
status='pending',
due_date=date(2025, 9, 20),
user_id=demo_user.id
),
Task(
title='Set up development environment',
description='Configure Docker Compose for local development with hot reload',
status='pending',
due_date=date(2025, 9, 18),
user_id=demo_user.id
),
Task(
title='Review Kubernetes concepts',
description='Prepare for tomorrow\'s Kubernetes session by reviewing container orchestration',
status='pending',
due_date=date(2025, 9, 19),
user_id=demo_user.id
),
Task(
title='Practice Git workflows',
description='Master branching, merging, and pull request workflows for team collaboration',
status='pending',
user_id=demo_user.id
),
# Completed tasks
Task(
title='Install Docker Desktop',
description='Download and install Docker Desktop for local development',
status='completed',
user_id=demo_user.id
),
Task(
title='Complete Git workshop',
description='Successfully completed Day 1 Git and GitHub workshop exercises',
status='completed',
user_id=demo_user.id
),
Task(
title='Create GitHub account',
description='Set up GitHub account and configure SSH keys for secure access',
status='completed',
user_id=demo_user.id
),
Task(
title='Fork demo repository',
description='Fork the workshop repository and clone it locally for hands-on practice',
status='completed',
user_id=demo_user.id
),
Task(
title='Test Flask application',
description='Run the task manager application locally and verify all features work',
status='completed',
user_id=demo_user.id
)
]
# Add all sample tasks
for task in sample_tasks:
db.session.add(task)
db.session.commit()
print('👤 Created default development user:')
print(' Username: demo')
print(' Password: demo123')
print(' Email: demo@taskmanager.dev')
print('📝 Seeded sample tasks:')
print(f' - {len([t for t in sample_tasks if t.status == "pending"])} pending tasks')
print(f' - {len([t for t in sample_tasks if t.status == "completed"])} completed tasks')
print('🌐 Access the app at: http://localhost:8000')
return True
else:
# Check if user has tasks
task_count = Task.query.filter_by(user_id=default_user.id).count()
print('👤 Default development user already exists:')
print(' Username: demo')
print(' Password: demo123')
print(f'📝 User has {task_count} existing tasks')
print('🌐 Access the app at: http://localhost:8000')
return False
except Exception as e:
print(f'❌ Error seeding development data: {e}')
return False
if __name__ == '__main__':
seed_development_data()