2.7 KiB
2.7 KiB
SIGAP Website
This is the website for SIGAP Jember, built with Next.js.
Features
- User Authentication
- Data management with Prisma and Supabase
- Interactive maps with Mapbox GL JS
- UI components with Radix UI and Tailwind CSS
- Form handling with React Hook Form and Zod
- State management with Zustand
- Email handling with React Email and Resend
Technologies Used
- Next.js: React framework for building full-stack web applications.
- Prisma: Next-generation ORM for Node.js and TypeScript.
- Supabase: Open Source Firebase Alternative (Backend as a Service).
- Tailwind CSS: A utility-first CSS framework for rapidly building custom designs.
- Radix UI: A collection of unstyled, accessible UI components.
- Mapbox GL JS: For interactive, customizable vector maps on the web.
Getting Started
Prerequisites
- Node.js
- npm or Yarn
- A Supabase project configured with your environment variables.
- A PostgreSQL database (for Prisma).
Installation
- Clone the repository:
git clone https://github.com/your-username/sigap-v.git cd sigap-v/sigap-website
- Install dependencies:
npm install # or yarn install
- Create a
.env
file in thesigap-website
directory and add your environment variables (e.g., Supabase credentials, database URL):DATABASE_URL="postgresql://user:password@host:port/database?schema=public" NEXT_PUBLIC_SUPABASE_URL=YOUR_SUPABASE_URL NEXT_PUBLIC_SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_KEY
- Run Prisma migrations:
npx prisma migrate dev
Running the App
npm run dev
# or yarn dev
Project Structure
src/
├── app/ # Next.js App Router pages and layouts
├── components/ # Reusable React components
├── config/ # Configuration files
├── constants/ # Application-wide constants
├── features/ # Feature-specific modules
├── hooks/ # Custom React hooks
├── lib/ # Utility functions and libraries
├── supabase/ # Supabase client and related configurations
├── types/ # TypeScript type definitions
├── utils/ # General utility functions
├── instrumentation-client.ts # Client-side instrumentation
├── instrumentation.ts # Server-side instrumentation
└── middleware.ts # Next.js middleware
prisma/ # Prisma schema and migrations
public/ # Static assets (images, fonts, etc.)