Overview
This guide will walk you through setting up ESP Website and creating your first program. You’ll learn how to:- Access the admin interface
- Create a new program
- Configure program modules
- Set up time blocks and resources
- Enable student and teacher registration
If you’re setting up a local development environment, start with the Installation Guide first.
Prerequisites
Before you begin, ensure you have:- A running ESP Website instance (Docker or production)
- Admin/superuser access to the site
- Basic understanding of your program structure (dates, time slots, etc.)
Step 1: Create a Superuser Account
Access the container
If you’re using Docker, open a terminal and run:You’ll be prompted to enter:
- Username
- Email address
- Password (entered twice)
Step 2: Create Your First Program
Navigate to program creation
Go to
http://localhost:8000/manage/newprogram or click on the “Programs” section in the admin interface.Fill out program details
Complete the program creation form with the following information:
Basic Information
Basic Information
- Program name: e.g., “Splash 2026”
- Program type: Choose from Splash, HSSP, or create a custom type
- URL identifier: Short name used in URLs (e.g., “Splash”)
- Instance identifier: Specific instance (e.g., “2026”)
Dates & Times
Dates & Times
- Start date: When your program begins
- End date: When your program ends
- Registration start: When registration opens
- Registration end: When registration closes
Program Modules
Program Modules
Select which modules to enable for your program:Essential Student Modules:
- StudentRegCore (required for student registration)
- StudentClassRegModule (class browsing and enrollment)
- RegProfileModule (student profile editor)
- TeacherRegCore (required for teacher registration)
- TeacherClassRegModule (class creation)
- AvailabilityModule (teacher availability)
- AdminCore (required)
- AdminClass (class management)
- AJAXSchedulingModule (visual scheduler)
Financial Settings
Financial Settings
- Program cost: Base registration fee
- Sibling discount: Optional discount for families
- Financial aid: Enable financial aid applications
Your program is now created! You can access it at
http://localhost:8000/manage/[program]/[instance]/Step 3: Configure Time Blocks and Resources
Before teachers can create classes, you need to set up when classes can meet and where they can be held.Access resource management
From your program dashboard, click “Manage Resources” or navigate to:
http://localhost:8000/manage/[program]/[instance]/resourcesCreate time blocks
Click “Manage Times” to create time slots for classes.Create as many time blocks as needed for your program schedule.
Add classrooms
Click “Manage Rooms” to add classroom resources.For each room, specify:
- Room name/number: e.g., “Room 101”
- Capacity: Maximum students
- Resource types: Available equipment (projector, whiteboard, etc.)
Step 4: Configure Program Settings
Customize your program’s behavior with tags and module settings.Access program settings
From the program dashboard, click “Edit Program Settings” or go to the admin panel:
http://localhost:8000/admin/program/program/Configure module settings
Adjust settings for individual modules:Student Class Registration:
- Enforce max capacity
- Class cap multiplier (for soft caps)
- Visible enrollments (show class fullness)
- Visible meeting times
- Allow class imports from previous programs
- Require class approval
- Maximum class duration
Step 5: Set Registration Deadlines
Control when different registration phases open and close.Deadlines control access to different parts of the registration process. Students and teachers can only access modules during their active deadline periods.
Step 6: Schedule Classes
Once teachers have submitted classes, use the AJAX scheduler to assign them to rooms and times.Review and approve classes
Navigate to the program dashboard and click “Manage Classes”.Review submitted classes and approve them for scheduling.
Open the scheduler
Click “AJAX Scheduling Module” from the program management page.You’ll see a grid interface with:
- Rooms (rows)
- Time blocks (columns)
- Unscheduled classes (sidebar)
Schedule classes
To schedule a class:
- Click on a class in the sidebar to select it
- Green cells indicate valid placement locations
- Yellow cells show teacher conflicts
- Click a green cell to place the class
Step 7: Enable Student Registration
Now that classes are scheduled, students can register!Test student flow
Create a test student account and walk through registration:
- Navigate to
http://localhost:8000/learn/[program]/[instance]/studentreg - Fill out the student profile
- Browse the class catalog
- Register for classes
- View your schedule
Step 8: Communications
Stay in touch with participants using the built-in communications system.Select recipients
Choose who should receive your message:
- All registered students
- Students in specific classes
- All teachers
- Teachers teaching specific subjects
- Custom combinations using Boolean logic
Next Steps
Program Modules Guide
Learn about all available modules and how to configure them
Advanced Scheduling
Master the AJAX scheduler with advanced techniques
Payment Processing
Set up Stripe or Cybersource for accepting payments
Customization
Customize themes, templates, and program behavior with tags
Common Issues
Students can't see classes
Students can't see classes
Check:
- Is the “Student Class Signup” deadline open?
- Are classes approved and scheduled?
- Is the StudentClassRegModule enabled?
- Are classes marked as “accepted” status?
Teachers can't create classes
Teachers can't create classes
Check:
- Is the “Teacher Class Creation” deadline open?
- Is the TeacherClassRegModule enabled?
- Have time blocks been created?
- Does the teacher have the correct permissions?
Can't schedule a class
Can't schedule a class
Check:
- Is the teacher available at that time?
- Does the room have sufficient capacity?
- Is the class duration a valid length?
- Are there any existing conflicts?
Emails aren't sending
Emails aren't sending
Check:
- Email configuration in
local_settings.py - SMTP server credentials
- Email queue (check
/admin/dbmail/emailrequest/) - Run
python manage.py send_email_procto process queue
Getting Help
If you run into issues:- Check the LU Wiki for detailed documentation
- Search GitHub Issues
- Ask in the Learning Unlimited community channels
- Contact [email protected] for support