Welcome! This guide will help you understand the project structure even if you're new to Django.
studyflow/ # 📦 Your project folder
│
├── 🎯 manage.py # Command center - Run Django commands here
│
├── 📝 Core Files
│ ├── README.md # Project overview (start here!)
│ ├── requirements.txt # Python packages needed
│ ├── db.sqlite3 # Database file (stores all data)
│ └── PROJECT_STRUCTURE.md # Detailed structure guide
│
├── 🚀 core/ # Main app - Your code lives here
│ ├── README.md # ← Read this to understand the app
│ ├── models.py # Database tables (Assignment, Session, Note)
│ ├── views.py # Page logic (what happens when you visit a URL)
│ ├── urls.py # URL routing (maps /dashboard/ to views)
│ ├── admin.py # Admin panel configuration
│ ├── apps.py # App settings
│ └── migrations/ # Database change history (auto-generated)
│
├── ⚙️ studyflow/ # Project settings
│ ├── README.md # ← Read this to understand configuration
│ ├── settings.py # Main configuration (database, apps, security)
│ ├── urls.py # Root URL routing (includes core app URLs)
│ └── wsgi.py + asgi.py # Server files (for deployment)
│
├── 🎨 templates/ # HTML files - What you see
│ ├── README.md # ← Read this to understand templates
│ ├── base.html # Main layout (sidebar, navigation)
│ └── core/ # Page templates
│ ├── dashboard.html # Dashboard page
│ ├── assignments.html # Treemap page
│ ├── study.html # Timer page
│ ├── notes.html # Notes page
│ ├── login.html # Login page
│ └── signup.html # Registration page
│
├── 💅 static/ # CSS, JavaScript, images
│ ├── README.md # ← Read this to understand assets
│ ├── css/style.css # All styling (colors, layout, etc.)
│ └── js/app.js # Interactive features (timer, treemap)
│
├── 📚 docs/ # Documentation
│ ├── README.md # Guide to all docs
│ ├── QUICK_START.md # Setup instructions
│ ├── PROJECT_WALKTHROUGH.md # Detailed tour
│ ├── DESIGN_REFERENCE.md # Design system
│ └── ...more docs
│
└── 🔧 scripts/ # Utility scripts
├── README.md # Guide to scripts
└── set_password.py # Password reset tool
User types: http://localhost:8000/dashboard/
# studyflow/urls.py includes core/urls.py
# core/urls.py maps '/dashboard/' to dashboard_view# core/views.py
def dashboard_view(request):
# Get data from database
assignments = Assignment.objects.filter(user=request.user)
# Render HTML with data
return render(request, 'core/dashboard.html', {'assignments': assignments})<!-- templates/core/dashboard.html -->
{% for assignment in assignments %}
<div>{{ assignment.title }}</div>
{% endfor %}Beautiful dashboard with all their assignments
Run Django commands:
python manage.py runserver # Start server
python manage.py migrate # Update database
python manage.py createsuperuser # Create admin account
python manage.py makemigrations # Prepare database changesDefines what data you store:
class Assignment(models.Model):
title = models.CharField(max_length=200)
deadline = models.DateTimeField()
# Each line is a database columnFunctions that handle requests:
def dashboard_view(request):
# Get data, process it, return HTMLMaps URLs to views:
path('dashboard/', dashboard_view, name='dashboard')
# When someone visits /dashboard/, run dashboard_view()Controls everything:
DEBUG = True # Show errors (turn off in production)
INSTALLED_APPS = [...] # Apps your project uses
DATABASES = {...} # Database connectionpython manage.py runserver
# Visit: http://localhost:8000/- Create function in
core/views.py - Add URL in
core/urls.py - Create HTML in
templates/core/ - Done!
Edit static/css/style.css
Edit static/js/app.js
- Edit
core/models.py - Run:
python manage.py makemigrations - Run:
python manage.py migrate
python manage.py createsuperuser
# Visit: http://localhost:8000/admin/- Read this file (you're here!)
- Read README.md
- Read docs/QUICK_START.md
- Run the project
- Read core/README.md
- Read templates/README.md
- Read static/README.md
- Explore the admin panel
- Open
core/models.py- See database structure - Open
core/views.py- See page logic - Open
templates/core/dashboard.html- See HTML - Open
static/css/style.css- See styling
- Change a color in CSS
- Add text to a template
- Create a test assignment
- Explore the features
- Read docs/PROJECT_WALKTHROUGH.md
- Read studyflow/README.md
- Try modifying a view function
- Add a new feature
- Main: README.md
- Core App: core/README.md
- Templates: templates/README.md
- Static: static/README.md
- Settings: studyflow/README.md
- Docs: docs/README.md
- Scripts: scripts/README.md
- Quick Start: docs/QUICK_START.md
- Project Tour: docs/PROJECT_WALKTHROUGH.md
- Design Guide: docs/DESIGN_REFERENCE.md
- Every folder has a README - Start there when confused!
- Use the admin panel - Great for testing: http://localhost:8000/admin/
- Check the terminal - Errors show up there
- Ctrl+F5 - Hard refresh browser when CSS/JS changes don't show
- Comments are your friend - Read the code comments
- Git commit often - Save your progress frequently
- Test in browser console - Press F12, test JavaScript there first
Start with the main README.md and follow the setup instructions. Don't worry if things seem confusing at first - every README file in each folder will guide you!
Remember: Learning takes time. Be patient with yourself! 🌟