Skip to content

Latest commit

Β 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NCP Next - Nurse Career Platform

A modern Next.js application for connecting nurses with career opportunities, featuring role-based access control, resume parsing, and job matching capabilities.

πŸš€ Features

Core Functionality

  • Role-Based Access Control: Separate dashboards for Nurses and Admins
  • User Authentication: Secure login, registration, and password management
  • Resume Processing: Automatic parsing of PDF resumes using Mammoth and pdf-parse
  • Job Matching: Intelligent job recommendations based on nurse profiles
  • Profile Management: Complete nurse profiles with certifications, education, and experience

Nurse Features

  • Dashboard with job recommendations
  • Profile management and settings
  • Resume upload and parsing
  • Skills and certifications tracking
  • Job browsing and applications

Admin Features

  • Admin dashboard with overview
  • Nurse management system
  • Job posting and management
  • System monitoring and analytics

πŸ› οΈ Tech Stack

Frontend

  • Next.js 16.1.6 - React framework with App Router
  • React 19.2.4 - UI library
  • TypeScript - Type safety
  • Tailwind CSS 4 - Styling
  • Radix UI - Accessible component primitives
  • Lucide React - Icon library

Backend & Database

  • NextAuth 4 - Authentication
  • Supabase - Database and real-time features
  • PostgreSQL - Database

Utilities & Tools

  • React Hook Form - Form management with Zod validation
  • Resend - Email service
  • Mammoth - PDF parsing for resumes
  • pdf-parse - Additional PDF processing
  • bcryptjs - Password hashing
  • date-fns - Date manipulation

πŸ“¦ Installation

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase project
  • Resend API key

Setup Instructions

  1. Clone the repository

    git clone https://github.com/Honeegee/NCP.git
    cd NCP
  2. Install dependencies

    npm install
    # or
    yarn install
  3. Environment Variables Create a .env.local file in the root directory:

    # Supabase Configuration
    NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
    NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
    SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
    
    # NextAuth Configuration
    NEXTAUTH_URL=http://localhost:3000
    NEXTAUTH_SECRET=your_nextauth_secret
    
    # Resend API Key
    RESEND_API_KEY=your_resend_api_key
    
    # Email Configuration
    FROM_EMAIL=noreply@yourdomain.com
  4. Database Setup

    • Run the Supabase migrations located in supabase/migrations/
    • Ensure your Supabase database is properly configured
  5. Run the development server

    npm run dev
    # or
    yarn dev
  6. Open http://localhost:3000 in your browser

πŸ“ Project Structure

src/
β”œβ”€β”€ app/                    # Next.js App Router
β”‚   β”œβ”€β”€ (admin)/           # Admin dashboard routes
β”‚   β”œβ”€β”€ (auth)/            # Authentication routes
β”‚   β”œβ”€β”€ (nurse)/           # Nurse dashboard routes
β”‚   β”œβ”€β”€ api/               # API routes
β”‚   └── globals.css        # Global styles
β”œβ”€β”€ components/            # Reusable components
β”‚   β”œβ”€β”€ ui/               # Shadcn/ui components
β”‚   β”œβ”€β”€ shared/           # Shared components (Navbar, Footer)
β”‚   β”œβ”€β”€ profile/          # Profile management components
β”‚   └── registration/     # Registration flow components
β”œβ”€β”€ lib/                  # Utility libraries
β”‚   β”œβ”€β”€ auth.ts          # Authentication configuration
β”‚   β”œβ”€β”€ supabase.ts      # Supabase client
β”‚   β”œβ”€β”€ validators.ts    # Zod validators
β”‚   └── utils.ts         # Utility functions
└── types/                # TypeScript type definitions

πŸ”§ Available Scripts

# Development
npm run dev          # Start development server with Turbopack
npm run dev:webpack  # Start development server with Webpack

# Production
npm run build        # Build for production
npm run start        # Start production server

# Code Quality
npm run lint         # Run ESLint

πŸ—„οΈ Database Schema

The application uses Supabase with the following main tables:

  • nurses - Nurse profiles and credentials
  • jobs - Job postings and requirements
  • certifications - Nurse certifications
  • education - Educational background
  • experience - Work experience
  • skills - Professional skills
  • resumes - Resume documents

Refer to supabase/migrations/ for detailed schema definitions.

πŸ” Authentication

The application uses NextAuth.js with the following providers:

  • Email/Password authentication
  • Session management
  • Role-based access control

Authentication Flow

  1. User registration with email verification
  2. Login with email/password
  3. Password reset functionality
  4. Session management with role-based routing

πŸ“§ Email Features

  • Welcome emails for new users
  • Password reset emails
  • Account verification
  • Job notifications (future enhancement)

🎨 Styling

  • Tailwind CSS 4 for utility-first styling
  • Radix UI for accessible components
  • Custom CSS for global styles and themes
  • Responsive design for all screen sizes

πŸš€ Deployment

Vercel (Recommended)

  1. Connect your repository to Vercel
  2. Configure environment variables
  3. Deploy automatically on push to main branch

Other Platforms

  • Netlify: Configure next.config.ts and build settings
  • AWS Amplify: Set up build and deployment pipelines
  • Docker: Use the provided build configuration

πŸ“‹ Environment Variables

Variable Description Required
NEXT_PUBLIC_SUPABASE_URL Supabase project URL βœ…
NEXT_PUBLIC_SUPABASE_ANON_KEY Supabase anonymous key βœ…
SUPABASE_SERVICE_ROLE_KEY Supabase service role key βœ…
NEXTAUTH_URL NextAuth URL βœ…
NEXTAUTH_SECRET NextAuth secret βœ…
RESEND_API_KEY Resend API key βœ…
FROM_EMAIL Default from email βœ…

πŸ”’ Security Features

  • Password hashing with bcryptjs
  • Input validation with Zod schemas
  • CSRF protection via NextAuth
  • Environment variable security
  • Rate limiting (future enhancement)
  • SQL injection protection via Supabase

πŸ“Š Analytics & Monitoring

  • Built-in error tracking
  • Performance monitoring
  • User activity logging
  • System health monitoring

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

For support and questions:

  • Create an issue in the GitHub repository
  • Check the documentation in the docs/ folder
  • Review the Supabase migrations for database schema

πŸ”„ Future Enhancements

  • Real-time notifications
  • Advanced job matching algorithms
  • Mobile application
  • Integration with nurse licensing boards
  • Video interview scheduling
  • Performance analytics dashboard
  • Multi-language support

Built with ❀️ using Next.js, Supabase, and modern web technologies.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages