First Project - Bryantad/Sona GitHub Wiki
🎯 Your First Project - Building Something Amazing!
Welcome to Real Programming! 🚀
Perfect for all ages 12-55+ - This guide walks you through building your first complete project using everything you've learned. Whether you're a visual learner, need step-by-step guidance, or learn best by doing, we'll build something you can actually use!
🎯 What You'll Build
By the end of this guide, you'll have built a Personal Life Dashboard that includes:
- ✅ Personal information display
- ✅ Daily habit tracker
- ✅ Budget calculator
- ✅ Goal progress monitor
- ✅ Motivational quotes system
This project uses everything you've learned:
- Variables and data types
- Decision making with
when
statements - Loops and repetition
- Functions (if you've learned them)
- Real-world problem solving
🛠️ Project Planning
Step 1: Think About What We Need
think "Planning my Personal Life Dashboard"
think "Features I want:"
think "1. Show my personal info"
think "2. Track my daily habits"
think "3. Calculate my budget"
think "4. Monitor my goals"
think "5. Show motivational quotes"
Step 2: Break It Into Parts
Instead of building everything at once, we'll build it piece by piece:
- Personal Info Section - Display basic information
- Habit Tracker - Track daily habits with progress
- Budget Calculator - Manage income and expenses
- Goal Monitor - Track progress toward goals
- Motivation System - Random encouraging quotes
🏗️ Building Your Dashboard
Part 1: Personal Information Display
think "Part 1: Personal Information"
show "╔══════════════════════════════════════╗"
show "║ PERSONAL LIFE DASHBOARD ║"
show "╚══════════════════════════════════════╝"
# Your personal information
name = "Your Name"
age = 25
city = "Your City"
favorite_hobby = "Programming"
daily_goal = "Learn something new"
show "👤 Personal Information:"
show " Name: " + name
show " Age: " + age
show " City: " + city
show " Favorite Hobby: " + favorite_hobby
show " Daily Goal: " + daily_goal
show ""
Part 2: Daily Habit Tracker
think "Part 2: Daily Habit Tracker"
show "📋 Daily Habit Tracker:"
# Define your habits
habits = ["exercise", "read", "drink water", "meditate", "code"]
habit_status = [true, true, false, true, true] # Today's progress
completed_habits = 0
total_habits = habits.length
repeat for i from 0 to total_habits - 1:
habit = habits[i]
completed = habit_status[i]
when completed:
show " ✅ " + habit.capitalize()
calculate completed_habits = completed_habits + 1
else:
show " ❌ " + habit.capitalize()
# Calculate completion percentage
calculate completion_rate = (completed_habits / total_habits) * 100
show " Progress: " + completed_habits + "/" + total_habits + " (" + completion_rate + "%)"
when completion_rate >= 80:
show " 🎉 Excellent day!"
when completion_rate >= 60:
show " 👍 Good progress!"
else:
show " 💪 Room for improvement!"
show ""
Part 3: Budget Calculator
think "Part 3: Budget Calculator"
show "💰 Budget Overview:"
# Income
monthly_income = 3000
show " Monthly Income: $" + monthly_income
# Expenses
expenses = {
"rent": 1000,
"food": 400,
"transportation": 200,
"entertainment": 150,
"savings": 500
}
total_expenses = 0
show " Monthly Expenses:"
repeat for each category in expenses.keys():
amount = expenses[category]
show " - " + category.capitalize() + ": $" + amount
calculate total_expenses = total_expenses + amount
show " Total Expenses: $" + total_expenses
# Calculate remaining money
calculate remaining = monthly_income - total_expenses
show " Remaining: $" + remaining
when remaining > 0:
show " ✅ Budget is balanced!"
when remaining > 200:
show " 💎 Great savings potential!"
when remaining == 0:
show " ⚠️ Breaking even"
else:
show " ❌ Over budget by $" + (remaining * -1)
show " 💡 Consider reducing expenses"
show ""
Part 4: Goal Progress Monitor
think "Part 4: Goal Progress Monitor"
show "🎯 Goal Progress:"
# Define your goals
goals = {
"Learn Programming": {current: 75, target: 100, unit: "lessons"},
"Save Money": {current: 2500, target: 5000, unit: "dollars"},
"Read Books": {current: 8, target: 12, unit: "books"},
"Exercise": {current: 15, target: 30, unit: "days"}
}
repeat for each goal_name in goals.keys():
goal = goals[goal_name]
current = goal.current
target = goal.target
unit = goal.unit
# Calculate progress percentage
calculate progress = (current / target) * 100
# Create progress bar
bars_filled = int(progress / 10)
bars_empty = 10 - bars_filled
progress_bar = "█" * bars_filled + "░" * bars_empty
show " " + goal_name + ":"
show " [" + progress_bar + "] " + progress + "%"
show " " + current + "/" + target + " " + unit
when progress >= 100:
show " 🏆 Goal achieved!"
when progress >= 75:
show " 🔥 Almost there!"
when progress >= 50:
show " 📈 Good progress!"
else:
show " 💪 Keep going!"
show ""
Part 5: Motivational Quote System
think "Part 5: Motivational Quote System"
show "💫 Daily Motivation:"
# Collection of motivational quotes
quotes = [
"The only way to do great work is to love what you do. - Steve Jobs",
"Code is like humor. When you have to explain it, it's bad. - Cory House",
"Programming isn't about what you know; it's about what you can figure out. - Chris Pine",
"The best error message is the one that never shows up. - Thomas Fuchs",
"Simplicity is the ultimate sophistication. - Leonardo da Vinci",
"First, solve the problem. Then, write the code. - John Johnson",
"Experience is the name everyone gives to their mistakes. - Oscar Wilde",
"The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
]
# Pick a random quote (simulate with today's date)
today_number = 3 # In real app, this would be based on actual date
quote_index = today_number % quotes.length
daily_quote = quotes[quote_index]
show " \"" + daily_quote + "\""
show ""
🎨 Adding Accessibility Features
Enhanced Visual Display
think "Adding accessibility features"
# For screen readers and visual accessibility
show "Dashboard loaded successfully"
show "Navigation: Use Tab to move between sections"
show "Sections: Personal Info, Habits, Budget, Goals, Motivation"
show ""
Keyboard Navigation Simulation
think "Simulating keyboard navigation"
sections = ["Personal Info", "Habits", "Budget", "Goals", "Motivation"]
current_section = 0
show "🎹 Keyboard Navigation:"
show " Current section: " + sections[current_section]
show " Press Tab to move to next section"
show " Press Shift+Tab to move to previous section"
show ""
🚀 Complete Dashboard Program
Here's your complete Personal Life Dashboard:
think "Complete Personal Life Dashboard"
show "╔══════════════════════════════════════╗"
show "║ PERSONAL LIFE DASHBOARD ║"
show "╚══════════════════════════════════════╝"
show ""
# === PERSONAL INFORMATION ===
name = "Alex Johnson"
age = 25
city = "San Francisco"
favorite_hobby = "Programming"
daily_goal = "Learn something new"
show "👤 Personal Information:"
show " Name: " + name
show " Age: " + age
show " City: " + city
show " Favorite Hobby: " + favorite_hobby
show " Daily Goal: " + daily_goal
show ""
# === HABIT TRACKER ===
show "📋 Daily Habit Tracker:"
habits = ["exercise", "read", "drink water", "meditate", "code"]
habit_status = [true, true, false, true, true]
completed_habits = 0
repeat for i from 0 to habits.length - 1:
habit = habits[i]
completed = habit_status[i]
when completed:
show " ✅ " + habit.capitalize()
calculate completed_habits = completed_habits + 1
else:
show " ❌ " + habit.capitalize()
calculate completion_rate = (completed_habits / habits.length) * 100
show " Progress: " + completed_habits + "/" + habits.length + " (" + completion_rate + "%)"
when completion_rate >= 80:
show " 🎉 Excellent day!"
else:
show " 💪 Keep working on your habits!"
show ""
# === BUDGET CALCULATOR ===
show "💰 Budget Overview:"
monthly_income = 3000
rent = 1000
food = 400
transportation = 200
entertainment = 150
savings = 500
total_expenses = rent + food + transportation + entertainment + savings
remaining = monthly_income - total_expenses
show " Monthly Income: $" + monthly_income
show " Monthly Expenses: $" + total_expenses
show " Remaining: $" + remaining
when remaining > 0:
show " ✅ Budget is balanced!"
else:
show " ❌ Over budget!"
show ""
# === GOAL PROGRESS ===
show "🎯 Goal Progress:"
programming_progress = 75
savings_progress = 50
fitness_progress = 90
show " Programming Skills: " + programming_progress + "%"
show " Savings Goal: " + savings_progress + "%"
show " Fitness Goal: " + fitness_progress + "%"
when programming_progress >= 75:
show " 🔥 Programming skills are advanced!"
when savings_progress >= 50:
show " 💰 Savings on track!"
when fitness_progress >= 75:
show " 💪 Fitness goals almost reached!"
show ""
# === MOTIVATION ===
show "💫 Daily Motivation:"
daily_quote = "The only way to do great work is to love what you do. - Steve Jobs"
show " \"" + daily_quote + "\""
show ""
show "╔══════════════════════════════════════╗"
show "║ DASHBOARD COMPLETE ║"
show "╚══════════════════════════════════════╝"
🎯 Customization Ideas
Make It Your Own
- Change the personal information to match your life
- Add your own habits to track
- Modify the budget categories for your expenses
- Add your own goals and progress tracking
- Include your favorite motivational quotes
Advanced Features to Add
think "Ideas for extending the dashboard"
# Add a mood tracker
today_mood = "happy"
when today_mood == "happy":
show "😊 You're feeling great today!"
# Add weather-based suggestions
weather = "sunny"
when weather == "sunny":
show "☀️ Perfect day for outdoor activities!"
# Add a task countdown
days_until_birthday = 45
show "🎂 " + days_until_birthday + " days until your birthday!"
🔧 Testing Your Dashboard
Test Different Scenarios
think "Testing different scenarios"
# Test with different habit completion rates
test_habits = [false, false, false, false, false]
# What happens when no habits are completed?
# Test with different budgets
test_income = 2000
test_expenses = 2500
# What happens when expenses exceed income?
# Test with different goal progress
test_progress = 100
# What happens when a goal is achieved?
🌟 What You've Accomplished
Congratulations! You've built a complete, functional program that:
- ✅ Displays information clearly and attractively
- ✅ Makes decisions based on data
- ✅ Uses loops to process multiple items
- ✅ Calculates values and shows results
- ✅ Provides feedback based on conditions
- ✅ Is accessible to different users and learning styles
🚀 Next Steps
Now that you've built your first project, you can:
- Enhance this dashboard with more features
- Build a new project using the same skills
- Learn more advanced topics like functions and data structures
- Share your project with friends and family
- Join the Sona community to show off your work
Project Ideas for Your Next Build
- Personal Journal App - Track your thoughts and experiences
- Simple Calculator - Build a calculator with multiple operations
- Quiz Game - Create a fun quiz about your interests
- Recipe Manager - Store and organize your favorite recipes
- Study Planner - Track assignments and deadlines
🎉 Congratulations!
You're now a real programmer! You've successfully built a complete application from scratch using:
- Variables and data types
- Decision making
- Loops and repetition
- Problem-solving skills
- Real-world application design
Keep building, keep learning, and keep having fun with code! 🚀
This project guide is constantly updated based on feedback from learners of all ages. Have ideas for improvements or want to share your customized dashboard? Let us know!