Learn Oracle APEX by building an application
Build a real Oracle APEX app, step by step, and learn why every table, rule and page is built the way it is.
Meet Turnout
A platform where any club, from runners to chess players, publishes events, takes RSVPs with waitlists and checks people in at the door. You build all of it.
Model it properly
Twelve tables, each with a reason: keys, time zones, a waitlist as a state machine, and rules the database enforces for you.
Secure it properly
Sign in with an email code, Google, Microsoft or GitHub. Roles that change club to club, enforced on the page, in the code and in the data.
Finish it properly
Dynamic actions, a branded Universal Theme, reminders and approvals, AI helpers, Spanish translation, and the app in Git.
Curriculum
Each lesson is 8 to 15 minutes with one clear outcome. Each part ends with a short quiz. A suggested pace is one part a week.
Foundations
0Get in and look around
- Request and activate your workspace
- Sign in and confirm you're on 26.2
- Your first query in SQL Workshop
- Install and run a sample app
- Peek inside Page Designer
1Think before you build
- Turnout's users and their stories
- Version 1 scope: in, later, out
- From stories to nouns: finding the tables
- Sketching pages on paper
2Model the data, with reasons
- Keys: surrogate ids and natural uniques
- People vs sign-ins
- Clubs, categories and URL slugs
- Membership as a table
- Events and time zones
- RSVPs as a state machine
- Lookup or check constraint? Plus the outbox and the cache
- Audit columns, defaults and triggers
- Draft in Quick SQL, finish by hand
- Indexes on foreign keys
- Seed realistic sample data
3The business logic layer
- Why a logic layer
- Package anatomy and naming
- TO_CLUB_API and join policies
- TO_RSVP_API: capacity and the last-spot race
- Waitlist promotion
- Errors people can read
- Testing the API
4The app shell and page flow
- Create the app and plan page numbers
- Public pages and friendly URLs
- Normal pages vs modal dialogs
- Branches, redirects and closing dialogs
- Deep links: sign in and come back
- Breadcrumbs: a way back up
Security
5Sign in to Turnout
- How sign-in fits together
- One person, many identities
- Email codes
- The custom scheme and the two-step page
- Social sign-in: Google, Microsoft and GitHub
- Switching schemes, signing out, sessions
6Authorization in four layers
- The four layers
- Authorization schemes, one per zone
- Component conditions: what each person sees
- Data rules: filter by person and club
- Site admins and the Club approvals page
- What people see when they're refused
- Testing permissions as three people
The app
7Build the pages
- The page map
- The public pages, revisited
- My events: two lists and a calendar
- My ticket: a QR code you can't forge
- My clubs
- Profile and linked sign-ins
- The organizer dashboard
- Members in an Interactive Grid
- The event editor dialog
- Check-in at the door
- Attendance, and closing an event
8Dynamic actions
- Anatomy of a dynamic action
- Running JavaScript: ends follow starts
- Running code on the server: the guest count
- Conditions and false actions: a two-step Cancel event
- Refreshing after a dialog closes
- When not to use a dynamic action
- Debugging dynamic actions
9Give Turnout a brand
- The brand on paper
- How Universal Theme takes a brand
- The logo
- One brand stylesheet
- Fixing what looked off
- Checking the brand
Beyond the pages
10Automation and email
- The outbox
- Email templates and placeholders
- The send automation
- Closing finished events
- Day-before reminders
- Watching automations run
11Integrations and AI
- Calling a web service from PL/SQL
- Reading JSON, and caching it
- Showing it
- Draft with AI
- Scanning tickets with the camera
12Turnout in Spanish
- One app, two languages
- Seed and export the XLIFF file
- Translating the file
- Text messages: Spanish from PL/SQL
- Dynamic translations: Spanish for data
- Apply, publish, and the step people miss
- When the app changes
13Quality and shipping
- The app as source files
- Tests you run every time
- The security review
- Performance: measure first
- Installable on phones
- The go-live checklist
Coming after version 1
+REST APIs: public and OAuth2-protected
- Designing a REST API
- A public events API
- Protecting an API with OAuth2 client credentials
- Documenting with OpenAPI
Get started in three steps
1. Get a free workspace
Sign up at apex.oracle.com. It’s free, runs in your browser, and is ready in minutes.
2. Start Part 0
Follow the first lab. You’ll confirm you’re on APEX 26.2 and install a sample app.
3. Build Turnout, one part at a time
Each part adds to the same app and ends with a short quiz. Pass every quiz to earn your certificate.
Questions
Is it really free?
Yes. Every lesson, quiz and certificate is free, and so is the apex.oracle.com workspace you’ll use.
Do I need to know SQL?
No. Part 2 teaches the SQL you need as you build Turnout’s tables, and every script is explained line by line.
Why APEX 26.2?
It’s the current release, from October 2026. Some older tutorials show tools that 26.2 removed, so this course teaches the way APEX works today.
How do I earn the certificate?
Pass the quiz at the end of each part. Then put your name on the certificate page and print it or save it as a PDF. Part 13 ends with a capstone to try on your own.
Can I use my own computer instead?
Yes, any APEX 26.2 instance works, including a free Oracle Cloud database or a local install. apex.oracle.com is the easiest way to follow along, and it's what the lessons show.