AIJUJO 3.2 - CLASSES, HOMEWORK AND RECORDINGS

Website: https://classnest-family.divyasmruthi9866.chatgpt.site

WINDOWS INSTALLATION
1. Download ClassNest_Windows.zip. Right-click > Extract All.
2. Open the extracted ClassNest folder and double-click START_HERE.cmd.
   Windows may display it simply as START_HERE when extensions are hidden.
3. Setup opens the online parent calendar and Recorder settings.
4. Choose the recordings/backups folder. Click Save and test 10 seconds.
   Play the saved MP4 and check the picture and audio before a child's class.
5. Use the Aijujo desktop shortcut on later visits.

Requirements: Windows 10/11, Edge or Chrome, Windows PowerShell 5.1,
.NET Framework 4.8, and internet. Setup uses the current Windows account.
It downloads the recording engine once (about 110 MB), checks its checksum,
and compiles the included recorder source with Windows' C# compiler.
No Python/Node installation is needed on the family's computers.
Actual Windows installation and screen/audio capture need testing on your PC;
development checks were performed on Linux.

If ClassNest.html opens as text, use START_HERE.cmd. The HTML is the included
local-only previous-version calendar. The main shortcut opens the online app.

PARENTS, TEACHERS, AND STUDENTS
- Open Login > Create Account. Choose Parent, Student, Teacher, Professor,
  or Technical trainer. Use your email and a password with 12 to 128
  characters. Confirm the password, then enter contact and address details.
- Parent/student registration includes up to two parent or guardian contacts.
  Parents can add student names, grades/courses, and schools now or later.
  Each student has a separate profile and calendar. New accounts have no
  invented students or scheduled classes. All normal registrations create
  regular accounts; the public generated-profile option is removed.
- Email OTP is planned for a later update. Email addresses are not verified
  and no verification messages are sent in this version.
- Existing ChatGPT sign-in remains available for existing parent calendars.
- Account displays and edits parent contacts, home address, and billing
  name/email/address. Use Children to edit student names, grades, and schools.
  Email/password accounts can change their password under Account; other
  devices must sign in again after a password change.
- A separate private sample parent login is supplied to the owner for trying
  the app. Its calendar starts empty so the owner can add students.
- Billing & cards opens Stripe hosted card setup when the site owner has
  connected a Stripe secret key. Enter cardholder name, card number, expiry,
  and security code there. Aijujo receives the provider card ID and displays
  only brand, last four digits, and expiry. Saving a card does not charge an
  app fee. Remove the saved card from Billing & cards when needed.
- The private sample account uses Stripe test mode only. Students cannot
  set up cards; a parent or guardian uses their own account. Without a
  Stripe key, card setup is unavailable and other app features remain usable.
- Student and teaching accounts connect a parent-provided invitation in
  their workspace. Selecting a role does not grant another family access.
- Add Johith and Juhith as separate profiles in your calendar.
- Sharing creates a teacher link for either child or both. Teachers select
  the child and enter dates, time zone, recurrence, and existing joining URLs.
- Teams, Zoom, Meet, and other http/https links work. ClassNest stores links;
  it does not create provider meetings or bypass their joining requirements.
- Sharing creates a separate student link for each child. Share the links
  yourself. Students can open them on other computers without a parent login.
- With the Windows companion enabled, use Create desktop shortcut in Sharing
  for each child. The child opens that shortcut and presses the large Join.
- Open calendars refresh teacher changes about every 15 seconds.
- Teachers can write homework for a daily date and optionally attach it to
  a class they submitted through that teacher link.
- Teachers can record, preview, and send a voice message up to two minutes
  after granting their browser microphone permission.
- Homework text/audio appears for the child and parent. Parent messages
  appear only on the parent calendar. Students do not see fees or payments.
- Anyone holding an active invitation has that link's scoped access. Use
  Revoke access in Sharing to disable it.

AUTOMATIC WINDOWS RECORDING
- Install this companion on EACH Windows PC that should record.
- Parent setup enables recording and chooses a folder once. Enable the
  companion in ClassNest Recordings or open the installed shortcut.
- Pressing Join opens the actual meeting link in a new browser tab and
  starts capture of the ENTIRE PRIMARY MONITOR through the companion.
  Children do not select a screen or capture source. The meeting link
  still opens when the companion cannot start. Update the Windows
  companion using this installer so the meeting opens only once.
- Capture uses Windows' default system audio and, when enabled, the default
  microphone. Put the meeting on the primary monitor and use the default
  Windows audio output. Verify audio during the 10-second test.
- A visible recording window offers Stop and save and Add 15 minutes.
  It stops at the scheduled class end and saves an MP4 under:
  <chosen folder>/Recordings/<main folder>/<category>/<child name>/
- Capture begins on Join, including a waiting room. It cannot detect actual
  meeting admission or the real end of an external meeting. Extend it if late.
- The entire primary screen includes other windows shown there. Only one
  automatic recording runs at a time in the Windows session.
- Keep the computer on until saving finishes. Failed saves retain raw files
  under the class recording folder/_in_progress/ for recovery.
- If microphone access is disabled, a parent must enable Windows desktop-app
  microphone access or turn microphone capture off in Recorder settings.
- Open ClassNest Recorder settings from Start for troubleshooting. The log
  is in %LOCALAPPDATA%/ClassNest/recorder.log.

WEBSITE ON OTHER COMPUTERS
Student calendars and joining links work from other computers. Automatic
monitor capture requires the installed Windows companion. A plain browser's
optional recorder asks an adult to select a screen and grant capture permission
each time; a website cannot silently select an entire monitor. Browser videos
are WebM: keep the page open and save the video before leaving.

LOCAL AND CLOUD FOLDERS
- Recorder settings accepts a local folder, mapped/network drive, or a folder
  synced by Google Drive for desktop, OneDrive, or another desktop sync app.
  Recordings are saved there and the sync app uploads them.
- Enter a Windows folder path. A Drive sharing URL, GitHub URL, or arbitrary
  cloud API URL cannot be used as a Windows folder.
- Online calendars and teacher messages use hosted database/audio storage
  so additions arrive even when the student's PC is off. Folder backups
  are user-controlled copies of the shared online data.
- In parent Recordings, choose Connect recordings and backups, and open
  the installed companion. This connects read-only backup access and
  permission to register this device's saved recording paths.
- Finished class recordings register their local path, date, title,
  category, children, and computer name in Aijujo. The video stays in
  the chosen folder. Failed metadata uploads retry every five minutes.
- Add or edit a recording in Aijujo to include its cloud sharing URL.
  A local video opens from its recording PC; cloud links work elsewhere.
- The Recordings page shows direct recording links and copyable saved
  paths. Removing a link does not delete the saved video file.
- A Windows task refreshes JSON and teacher voice files every five minutes
  while this Windows account is logged in and online. Back up now is also
  available in Recorder settings. If scheduling is restricted, use it manually.
- Backups include calendar records, attendance, payments, homework, messages,
  recording paths, and teacher audio. The latest JSON and one snapshot per day are kept.
  Teacher voice files are under Backups/VoiceMessages.
- A student page can connect only that child's calendar/homework backup.
  Connecting it replaces this PC's existing family backup connection.
- Settings > Download backup exports calendar records manually. Restore
  replaces calendar records after confirmation; it does not re-upload voice
  files or recreate archived teacher message history.
- Direct GitHub/Google Drive APIs are not connected. Synced folders rely on
  the chosen desktop sync app and its available space.


FOLDERS, CALENDAR FILTERS AND EXCEL
- Login begins with ALL scheduled activities displayed.
- Classes: Regular classes, Homework classes.
- Homework: Class homework, Personal homework, School homework.
- Choose a category tab to display only its schedules and related notes.
  Choose All schedules to return to the complete calendar.
- A teacher selects a schedule category when adding an activity and a
  homework category when sending daily notes or voice messages.
- Export to Excel creates an actual .xlsx workbook with Schedule, Classes,
  Class links, Attendance, Payments, Homework, and Recordings sheets.
  Choose a child, category, and period for the Schedule sheet. The other
  sheets contain all saved history matching the child/category selection.
  Saved recording paths, cloud URLs, device names, and teacher voice
  recording links are included. Date, time, and money cells have types.

MOBILE INSTALLATION
- Android: open Aijujo or a child's student calendar in Chrome. Use the
  three-dot menu > Install app / Add to Home screen, then confirm.
- iPhone/iPad: open the relevant calendar in Safari. Share > Add to Home
  Screen > Open as Web App (if shown) > Add.
- The Install page has full instructions. The child's installed shortcut
  opens that child's calendar. Parent login opens the family calendar.
- Phones support calendars, Join, homework, teacher voice messages,
  cloud recording links, and Excel export. Automatic monitor recording
  requires the Windows companion. Calendars require an internet connection.

SECURE BILLING SETUP FOR THE OWNER
The hosted card service is implemented but currently unconnected.
1. Create/open your Stripe sandbox and obtain its secret API key.
2. Set STRIPE_SECRET_KEY as a secret server environment variable for this
   Aijujo Site. Do not put it in a public file, browser code, or registration.
3. Publish the environment update if required, then open Billing & cards.
4. Test Add card, the secure hosted return, masked display, and Remove card
   in the sandbox. Use Stripe test card details, not a real payment card.
The private sample profile cannot use a live Stripe key. Email OTP, real subscriptions,
app pricing, and charging are not connected. No raw card numbers or security
codes are stored by Aijujo. Provider transport is covered by local mocks;
real Stripe sandbox setup needs the owner-supplied key before verification.
Stripe setup guide: https://docs.stripe.com/payments/save-and-reuse

DOMAIN SETUP FOR THE OWNER
Aijujo is configured for aijujo.com; DNS validation must finish before it
can serve that address. Until then, use the website URL at the top.
In the DNS provider for aijujo.com, add these records (normal DNS / unproxied
while validating). Do not include the domain twice if the provider adds it.
A     @                          162.159.143.30
A     @                          172.66.3.26
TXT   _openai-site-verification   openai-site-verification=dd6w8l2fHPJD38cfOWRdgY0kgCwt-Vy4qOAC9zA8iDU
TXT   _cf-custom-hostname         f3e715f6-bc14-4b10-a657-a1a10ab4b43a
Use the DNS provider's default/automatic TTL. Existing conflicting apex A,
AAAA, or CNAME records need review before replacing website routing. Preserve
mail MX and unrelated TXT records. The CNAME target for a future subdomain
is custom-domains.chatgpt.site. www.aijujo.com is also attached; add:
CNAME www                        custom-domains.chatgpt.site
TXT   _openai-site-verification.www openai-site-verification=4VSJ-wPHktJ9VWlw1rHeV9daT1s1FIUoRaXxoIHUbB4
TXT   _cf-custom-hostname.www     8d661b31-f393-4dba-8ef0-97fbbca89bc5
Both root and www must complete DNS verification and HTTPS certificate
validation before use. The updated Windows companion supports both origins.

PRESERVE YOUR EXISTING OFFLINE RECORDS
Close existing ClassNest windows before this update. The installed offline
HTML path and browser profile are preserved, but offline records are not
silently merged into the online calendar.
1. Open Start > ClassNest > ClassNest Offline - Previous records.
2. Use Settings > Download backup.
3. Open online ClassNest, then Settings > Restore backup. Choose that JSON
   and review the replacement confirmation before restoring.
Opening the package HTML directly uses different browser storage. Use the
installed Offline - Previous records shortcut. Keep a backup before clearing
or deleting the old Profile folder.

OTHER FEATURES
- Classes can belong to either or both children; attendance is individual.
- Teacher times convert to your family time zone. One-session overrides can
  change an occurrence's link/time without changing the recurring class.
- Fees and payments are records only; ClassNest does not process payments.
- WhatsApp import accepts pasted messages or an extracted exported .txt chat.
  Review children, dates, times, and time zones before saving. Automatic
  WhatsApp/group monitoring is not connected.
- Calendar export creates a six-month .ics snapshot; it is not live sync.
- In-app reminders work while the calendar is open, not after it is closed.

UPDATE AND UNINSTALL
Close ClassNest and active recording before running a newer START_HERE.cmd.
Recorder settings, offline records, and recordings are preserved.
Uninstall from Start or Uninstall_ClassNest.cmd removes app files, its main
shortcuts, protocol handler, and scheduled task. Online records, recordings,
backups, settings, and the old profile remain. Separate child desktop shortcuts
can be deleted manually.

DEVELOPER FILES
Offline source/tests are in Source. Recorder source and NAudio's MIT license
are in Recorder. The online site source is maintained separately.
Offline tests: node --test Source/tests/*.test.js
Verification scope and remaining Windows checks: Source/VALIDATION.txt
FFmpeg docs: https://ffmpeg.org/documentation.html
Recording-engine builds: https://www.gyan.dev/ffmpeg/builds/
