A Customer Relationship Management (CRM) application built for TheAlphaOnes.
- Dashboard: Centralized view for managing customer data.
- Email Integration: Send and track emails to clients.
- User Management: Add and manage users in the system.
- Authentication: Secure login using Supabase Auth.
- Responsive Design: UI that works on both desktop and mobile devices.
- Framework: Next.js
- Styling: Tailwind CSS
- UI Components: Shadcn/ui
- ORM: Drizzle ORM
- Database: PostgreSQL (via Supabase)
- Authentication: Supabase Auth
- Language: TypeScript
Make sure you have Node.js and pnpm installed on your machine.
-
Clone the repository:
git clone <repository-url> cd the-alpha-ones-crm
-
Install dependencies:
pnpm install npm install -D drizzle-kit npm install drizzle-orm postgres npm install @supabase/supabase-js @supabase/ssr
-
Set up environment variables:
Create a
.env.localfile in the root of your project and add the following variables. You can get these from your Supabase project settings.DATABASE_URL="your_supabase_connection_string" NEXT_PUBLIC_SUPABASE_URL="your_supabase_project_url" NEXT_PUBLIC_SUPABASE_ANON_KEY="your_supabase_anon_key"
-
Push database schema:
Apply the Drizzle schema to your Supabase database.
npx drizzle-kit push
-
Run the development server:
pnpm dev
Open http://localhost:3000 with your browser to see the result.
The main application code is located in the src/ directory.
src/
├── app/ # Next.js App Router pages and layouts
│ ├── (auth)/ # Authentication related pages
│ ├── (dashboard)/ # Dashboard pages and layout
│ ├── action/ # Server actions
│ └── ...
├── components/ # Reusable React components
│ └── ui/ # Shadcn/ui components
├── db/ # Drizzle ORM schema and configuration
├── lib/ # Utility functions
└── utils/ # Supabase client and server utilities