Go further with Oracle APEX: build SkySutra
The second Kathuko APEX course. Build an app about the real night sky over wherever you are, in modern astronomy and in the Indian tradition, with the APEX features Turnout didn't use.
Meet SkySutra
What's up tonight from your home, where the planets and the Moon are, when the ISS flies over, a log of what you saw, and the 27 nakshatras and the lunar days as the real sky. It never tells anyone what the sky means for them.
Data that arrives by itself
A 9,000-star catalog loaded with Data Load Definitions; the ISS, space weather and NASA's picture of the day synchronized from REST services.
The sky, computed
Sidereal time, the planets, rise and set, tithi and nakshatra in PL/SQL, tested against published values, drawn by your own region plugin.
An app that runs on its own
Workflows and approvals, nightly automations, push alerts, a weekly email, search by meaning, an AI guide that cites its sources, and a public API.
See what you'll build
The finished SkySutra, after Part 12. Every screen is yours by the end of the part it names.







On your phone
SkySutra installs as an app, with push alerts before the ISS flies over. It's a progressive web app: no app store, and the same pages.
Curriculum
Each part builds on the last and ends with review questions and a short quiz. A suggested pace is one part a week.
Before you build
0Orientation
- A tour of SkySutra
- What you need from Turnout
- The sky in ten minutes
- Vedic sky, in plain English
- Set up your workspace
- Signing in
The sky as data
1Modeling the sky
- Bodies, stars and constellations
- Nakshatras as data
- Observers and places
- Observations and photos
- Time the astronomer's way
- Store or compute?
- Sidereal and tropical
- Build the schema
2Loading a catalog
- Choosing a catalog
- Data Load Definitions
- Transformations on the way in
- Constellations
- The 27 nakshatras
- Loads you can run again
3Sky math in PL/SQL
- Why the math lives in the database
- Julian date and sidereal time
- From RA/Dec to altitude and azimuth
- The Sun and the Moon
- Phase, tithi and nakshatra
- The planets
- Testing against published answers
4Live data
- REST Data Sources
- The ISS from CelesTrak
- Synchronization
- Aurora chances and the picture of the day
- When a service is down
- Web credentials for keys
Pages people use
5Tonight's sky
- Dark first
- Template Components
- Today in the sky
- The sky chart
- The Tonight page
7Where you are
- Your location from the browser
- The Map region
- Spatial queries
- Where's the ISS?
8The observing log
- Logging an observation
- A human task
- A workflow
- The moderator's inbox
- Comments
- How-to: photos in Object Storage (optional)
On its own, and out into the world
9The sky calendar and lunar days
- A sky calendar
- Lunar days through the month
- Lore pages
- Why the signs disagree
10Running on its own
- A nightly chain
- Work in the background
- Push notifications
- A weekly sky email
11Ask the sky
- Embeddings in plain English
- A Vector Provider
- Vectors in tables
- Search by meaning
- An assistant grounded in your data
- Keeping it honest
12Share it
- JSON Relational Duality views
- A public API from a view
- A printable observing plan
- On your phone
- Go-live
Get started in three steps
1. Finish Turnout, or know the basics
SkySutra doesn't teach pages, regions, packages or authorization again. If you're new to APEX, start with the first course, Turnout. Part 0 has a checklist of what you need.
2. Start Part 0
Follow Part 0. You'll learn just enough astronomy and Vedic sky to follow along, and make an empty SkySutra app in your workspace.
3. Build SkySutra, one part at a time
Each part adds to the same app. Pass every part's quiz to earn your certificate.
APEX features showcased
Everything SkySutra adds beyond Turnout, grouped by part. Each one has a real job in the app.
Getting ready Part 0
- A second app in the same workspace, kept apart by a table prefix
- Your own app icon, and Vita - Dark from the first page
- Oracle APEX accounts and Google sign-in side by side
- An Access Control role for moderators
Modeling the sky Part 1
- Natural keys from star catalogs, beside surrogate ids
- UTC everywhere, and why a TIMESTAMP WITH TIME ZONE can't be a key
- A check constraint for "exactly one target"
- Deciding what to store and what to compute
- Quick SQL for the first draft, finished by hand
Loading a catalog Part 2
- Data Load Definitions: a data load and a data profile
- SQL Expression and Lookup columns, and transformations on the way in
- Merge or Replace, and an error log for rows that fail
- A Data Loading page, for administrators only
Sky math in PL/SQL Part 3
- Julian dates, sidereal time and alt-azimuth in packages
- The Sun, the Moon, the planets, tithi and nakshatra
- BINARY_DOUBLE where the math is heavy
- Tests against published values, run from SQL Commands
Live data Part 4
- REST Data Sources, discovered from one URL
- Remote servers and parameters
- Scheduled synchronization with Merge, and triggers that keep fetched_at true
- Web credentials, so API keys stay out of code and exports
- What to show when a service is down
Tonight's sky Part 5
- Three theme styles with your own CSS, remembered per person
- Template Components, one inside another
- A region plugin that draws the sky chart as SVG
- The render procedure in a package
- Value Attribute Pairs and one-line regions on views
Exploring the stars Part 6
- Faceted Search with range and list facets
- Smart Filters in one search bar
- A plugin attribute that reads a page item
- Search Configurations and an application Search page
Maps and places Part 7
- Get Current Position, and the browser's time zone
- Background execution chains for slow work
- Map region: layers, shapes, info windows and clustering
- Oracle Spatial: SDO_GEOMETRY and distances
- A pipelined table function as a map source
The observing log Part 8
- Image Upload item, resized in the browser
- Cards with BLOB images
- Task Definitions and Human Tasks
- Workflows, and the Unified Task List as a moderator's inbox
- The Comments template component
Calendar and lore Part 9
- Calendar region with list view
- Sky events computed ahead and stored
- Markdown Editor item and APEX_MARKDOWN, safely escaped
- A Checkbox plugin attribute that adds a layer to the chart
Running on its own Part 10
- Automations with ordered actions and Stop Execution On Error
- A job log in autonomous transactions
- Progress from a background execution chain
- PWA push notifications with APEX_PWA
- Email templates and APEX_MAIL
Ask the sky Part 11
- Vector Providers (Gemini, OpenAI, OCI and others)
- VECTOR columns and AI Vector Search
- A Search Configuration that searches by meaning
- An AI Agent with Retrieve Data tools: grounded answers (RAG)
- Show AI Assistant, inline on a page
- A system prompt that cites sources and refuses predictions
Share it Part 12
- JSON Relational Duality views
- A read-only REST API with ORDS, including a media handler
- PDFs with APEX_DATA_EXPORT, no print server
- Installable on phones as a progressive web app
- The Advisor and a go-live checklist
Questions
Do I need to do Turnout first?
It's the easiest way in. SkySutra assumes you can build pages and regions, write a PL/SQL package and set up authorization. If you can, start here; Part 0 lists what you need, with the Turnout lesson for each.
Is it really free?
Yes. Every lesson, quiz and certificate is free, and so is the apex.oracle.com workspace you'll use. The AI parts use a free Gemini key.
Do I need to know astronomy?
No. Part 0 explains altitude and azimuth, magnitude, sidereal time, nakshatras and tithis in plain English, and every formula is explained when it's used.
Is SkySutra an astrology app?
No. It shows the real sky, and the astronomy inside the Indian calendar: the Moon's place among the stars, the angle between the Moon and the Sun. Its stories name their sources. It never makes predictions or says what the sky means for a person.
Will it work on my own APEX instance?
Any APEX 26.2 instance with a 26ai database works. The lessons are written for apex.oracle.com and say where it differs, for example where it blocks JavaScript in the database or vector memory.
Is there an app export for each part?
No. You build one app as you go, and each part's downloads are the scripts and files its lessons use. There's one export of the finished app, at the end of Part 12, with the steps to install it next to yours.
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.