This is the main repository and source code for the SchoolConnect application. It contains the backend, frontend, website, and database of the application. If you are looking for the documentation, check out our support tracker.
apps/expo
-- The Expo mobile application written using React Nativeapps/nextjs
-- The Next.js application, that hosts the HTTP server and static pagespackages/api
-- The tRPC serverpackages/config
-- Shared configuration between packagespackages/db
-- Prisma ORM and database connection setuppackages/ws
-- WebSocket server for realtime
patches
-- Modified dependencies to fix bugsdocs
-- The SchoolConnect documentationscripts
-- Helper scripts for interacting with codebase.vscode
-- Editor configuration for VSCode.github
-- Workflows for GitHub
The technology stack of this application consists of the following:
- React Native and Expo for the Frontend
- NativeWind for Tailwind mimicry
- Tanstack Query for the caching layer
- tRPC client (wraps around Tanstack Query)
- Jotai for global state management
- Next.js for the backend and website
- Backend written using tRPC
- PostgreSQL for the database
- Prisma for the database ORM
- Kumiko for the styling
- QStash for scheduling tasks
expo-server-sdk
for sending push notifications- GitHub OAuth for authentication
- TypeScript for the JavaScript typing
- GitHub Actions for CI to make sure the code is always working
- Deployment
- Expo for the mobile application
- Vercel for the backend and website
- Railway for the database/websockets
The architecture of how the packages interact with each other is as shown in the following diagram:
For more information on the specifics of the packages, check out the READMEs in their packages.
To get started running this application, check out the instructions. For more information this application, view our documentation.