Skip to content

tutorslink/it

Repository files navigation

Tutorslink App Starter

A production-ready Next.js 15 app with App Router, TypeScript, Tailwind CSS, and shadcn/ui defaults. The structure is organized for scalable teams with shared layout components, reusable UI, and Appwrite placeholders.

Scripts

npm run dev
npm run build
npm run start
npm run lint

Structure

src/
	app/            App Router routes
	components/     Reusable layout and UI primitives
	lib/            Utilities and Appwrite placeholders

Appwrite integration

Install dependencies and set the following variables in .env.local when you are ready to connect the Appwrite SDK:

NEXT_PUBLIC_APPWRITE_ENDPOINT=
NEXT_PUBLIC_APPWRITE_PROJECT_ID=
NEXT_PUBLIC_APPWRITE_DATABASE_ID=
NEXT_PUBLIC_APPWRITE_BUCKET_ID=
APPWRITE_API_KEY=

Client-safe helpers live in src/lib/appwrite/client.ts, while server-only helpers live in src/lib/appwrite/server.ts.

Appwrite schema setup

Use the schema bootstrap script to create or reconcile the Appwrite database collections and relationships used by the tutors experience:

npm run appwrite:setup

It creates the subject taxonomy, tutor profiles, tutor applications, students, tutor reviews, ads, and site pages schemas in the configured Appwrite database.

Staff access setup

Use the staff bootstrap script to create the Appwrite teams used for private tutor application review:

npm run appwrite:setup-staff

This creates the staff_admins and staff_recruitment teams. Add the correct Appwrite users to those teams in the Console so they can access the staff dashboard.

Staff members can review tutor applications at:

  • /admin/tutor-applications
  • /staff/tutor-applications

GitHub Actions deployment

The repository includes a GitHub Actions workflow at .github/workflows/deploy.yml that:

  • restores the Next.js cache with actions/cache
  • runs npm ci, npm run lint, and npm run build
  • packages the standalone build output for a precompiled deployment
  • deploys only on pushes to main

Add these GitHub secrets before enabling the deploy job:

  • APPWRITE_ENDPOINT
  • APPWRITE_PROJECT_ID
  • APPWRITE_API_KEY
  • APPWRITE_SITE_ID

The Appwrite CLI is authenticated in CI with:

appwrite client \
	--endpoint "$APPWRITE_ENDPOINT" \
	--project-id "$APPWRITE_PROJECT_ID" \
	--key "$APPWRITE_API_KEY" \
	--self-signed false

After that, the workflow uploads the prebuilt bundle with:

appwrite sites create-deployment --site-id "$APPWRITE_SITE_ID" --code ./deploy

About

Tutors Link Website

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors