Tidal PTC (parent-teacher conferences) is Archboard's first open source project. It's a web application for scheduling parent-teacher conferences: admins and teachers create time slots, and parents and guardians log in to book them.
- PowerSchool integration. Install the plugin and students, teachers and contacts sync automatically, with single sign-on for everyone. No CSV exports or temporary passwords.
- Flexible time slots. A wide range of configuration options for how slots are created, booked and managed.
- Translators. Families can request a translator, and admins manage the requests.
- Online meetings. Conferences can be held online as well as in person.
- Email reminders for upcoming conferences.
- Multilingual. Available in English, Chinese, Korean, Japanese, Spanish and Arabic.
- Free to self-host. No subscription costs, and you get the complete application.
Requirements: PHP 8.5, PostgreSQL, Redis, Node 20+, and a PowerSchool plugin (client ID/secret) for SSO and data sync.
- Docker (recommended): a production Compose stack with images published to
ghcr.io/archboard/tidal-ptc. - VM without Docker: Nginx, PHP-FPM, PostgreSQL, Redis and systemd services on a fresh server.
Either way, finish by visiting /install to configure the tenant and create the first administrator. To hear about new versions, watch the repository's releases on GitHub (Watch → Custom → Releases).
APP_KEY encrypts every tenant's PowerSchool and SMTP credentials, and it signs sessions and cloud setup links. Keep it only in your host's secret store. If it leaks, or on a schedule, rotate it:
- Generate a new key with
php artisan key:generate --show. Set it asAPP_KEY, move the old key toAPP_PREVIOUS_KEYS(comma-separated), and deploy. Existing secrets, sessions and links keep working. - Run
php artisan key:reencryptto rewrite the tenant secrets with the new key. - Remove
APP_PREVIOUS_KEYSand deploy. Everyone is signed out, and unused cloud setup links stop working (reissue them withphp artisan tenant:setup-link).
composer install
npm install && npm run build
cp .env.example .env
php artisan key:generate
php artisan migrate --seedSeeding creates a tenant on APP_URL with an admin ([email protected]), a teacher, a guardian and sample time slots, all with the password password. Run npm run enums after changing a #[PublishEnum] enum to regenerate the JavaScript copies.
Tidal PTC is licensed under the GNU AGPLv3 license. You can read more about it on GNU's website.