Skip to content

Land Your Dream Job With Our Interview Practice. πŸš€ Get instant feedback, improve fast, and land your dream role. 95% of users increased confidence after just 3 sessions.

License

Notifications You must be signed in to change notification settings

Ashref-dev/entretien-ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Entretien AI

License Last Commit

Entretien AI - Master Your Interview Game
Get Started Β»

About Β· Website Β· Blog Β· Pricing

About Entretien AI

Master the art of interviewing with Entretien AI. Our cutting-edge platform uses advanced AI technology to provide personalized interview preparation, helping you transform interview anxiety into confident performance. Whether you're targeting tech giants or startups, we'll help you showcase your best self.

Key Features

  • AI-Powered Mock Interviews: Experience realistic interview simulations with our advanced AI system
  • Real-Time Feedback: Get instant analysis on your responses, body language, and delivery
  • Technical Interview Prep: Specialized tracks for software engineering roles across all levels
  • Performance Analytics: Track your progress with detailed metrics and improvement insights
  • Custom Interview Paths: Tailored preparation paths based on your target role and company
  • Comprehensive Feedback: Detailed analysis of technical accuracy, communication skills, and presentation

Tech Stack

Next.js 15 React 19 TypeScript Tailwind CSS Prisma

Frontend

Backend & Database

Email & Communications

Getting Started

Prerequisites

  • Deno, bun or node.js 18.x or higher

Important: This project uses @t3-oss/env-nextjs for runtime environment variable validation. The validation schema is defined in env.mjs and ensures all required environment variables are present with the correct types.

Required Environment Variables

The following environment variables must be set in your .env file:

Authentication

  • AUTH_SECRET: Secret key for authentication
  • GOOGLE_CLIENT_ID: Google OAuth client ID
  • GOOGLE_CLIENT_SECRET: Google OAuth client secret
  • AUTH_GITHUB_ID: GitHub OAuth app ID
  • AUTH_GITHUB_SECRET: GitHub OAuth app secret

Database

  • DATABASE_URL: PostgreSQL connection string

Email

  • RESEND_API_KEY: API key for Resend email service
  • EMAIL_FROM: Sender email address

AI Services

  • AI_API_KEY: API key for AI services
  • GROQ_API_KEY: Groq API key (optional)
  • GROK_API_KEY: Grok API key (optional)

Stripe Integration

  • STRIPE_API_KEY: Stripe secret key
  • STRIPE_WEBHOOK_SECRET: Stripe webhook signing secret
  • NEXT_PUBLIC_STRIPE_PRO_MONTHLY_PLAN_ID: Monthly pro plan ID
  • NEXT_PUBLIC_STRIPE_PRO_YEARLY_PLAN_ID: Yearly pro plan ID
  • NEXT_PUBLIC_STRIPE_BUSINESS_MONTHLY_PLAN_ID: Monthly business plan ID
  • NEXT_PUBLIC_STRIPE_BUSINESS_YEARLY_PLAN_ID: Yearly business plan ID

Application URLs

  • NEXT_PUBLIC_APP_URL: Public URL of your application
  • NEXTAUTH_URL: Auth.js URL (optional in production)

Environment Validation

The project uses strict runtime validation for environment variables:

  • Server-side variables are validated before the server starts
  • Client-side variables are validated during build time
  • Type-safe access to environment variables throughout the application
  • Helpful error messages if required variables are missing

For production builds, the application uses .env.production with dummy values during build time. The actual runtime values are provided by Azure App Service environment variables.

Do not modify .env.production with real values as it's committed to the repository.

Installation

  1. Clone the repository:
git clone https://github.com/Ashref-dev/entretien-ai
  1. Install dependencies:
bun install
  1. Copy the example environment file:
cp .env.example .env
  1. Set up your environment variables:
  • NEXTAUTH_URL
  • NEXTAUTH_SECRET
  • NEXT_PUBLIC_APP_URL
  • DATABASE_URL
  • Etc.
  1. Initialize the database:
bunx prisma db push
  1. Run the development server:
bun dev

Deployment

Azure Cloud Docker Containers Neon Cloud

This project comes with a ready-to-use Docker configuration and GitHub Actions pipeline for Azure Cloud deployment.

Docker Support

  • Includes a production-ready Dockerfile
  • Optimized multi-stage builds for smaller image size
  • Configured for Next.js and Bun

Azure Cloud Deployment

  • Pre-configured GitHub Actions workflow for CI/CD
  • Automated deployments to Azure App Service
  • For detailed deployment commands, see Deployment Guide

To deploy to Azure:

  1. Set up an Azure subscription (free with GitHub Student Pack)
  2. Install Azure CLI and authenticate
  3. Follow the commands in the deployment guide to:
    • Create resource group
    • Set up App Service Plan
    • Configure environment variables
    • Deploy container image

For complete deployment instructions and Azure CLI commands, check our Deployment Guide.

Code of Conduct

We are committed to fostering an open and welcoming environment. Please read our Code of Conduct for details on our community behavior standards and how to report unacceptable behavior.

Contributing

We welcome contributions! Please see our contribution guidelines for details.

Contact

For support or inquiries, contact us at [email protected]

Privacy & Security

We take your privacy seriously. See our Privacy Policy for details about:

  • Data collection and usage
  • Security measures
  • Your privacy rights

License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.

The AGPL-3.0 license ensures that:

  • You can use this software freely
  • You can modify and distribute this software
  • If you modify and share this software, you must:
    • Make your modifications available under the same license
    • Share the source code when you deploy modified versions
    • Preserve copyright notices and license information

the shader gradients

here's the links to the used gradients:


Gradient 1:
https://www.shadergradient.co/customize?animate=on&axesHelper=on&bgColor1=%23000000&bgColor2=%23000000&brightness=1&cAzimuthAngle=180&cDistance=5.7&cPolarAngle=115&cameraZoom=1&color1=%23268c9a&color2=%239224b3&color3=%23000000&destination=onCanvas&embedMode=off&envPreset=city&format=gif&fov=45&frameRate=10&grain=on&lightType=3d&pixelDensity=1&positionX=-0.5&positionY=0.1&positionZ=-1&range=enabled&rangeEnd=40&rangeStart=0&reflection=0.1&rotationX=0&rotationY=0&rotationZ=235&shader=defaults&toggleAxis=true&type=waterPlane&uAmplitude=0&uDensity=1.1&uFrequency=5.5&uSpeed=0.1&uStrength=2.4&uTime=0.2&wireframe=false&zoomOut=false

Gradient 2:
https://shadergradient-web.vercel.app/customize?animate=on&axesHelper=off&bgColor1=%23000000&bgColor2=%23000000&brightness=1.1&cAzimuthAngle=170&cDistance=4.4&cPolarAngle=70&cameraZoom=1&color1=%23b5e1ff&color2=%23f6d1ff&color3=%23ffffff&destination=onCanvas&embedMode=off&envPreset=city&format=gif&fov=45&frameRate=10&gizmoHelper=hide&grain=on&lightType=3d&pixelDensity=1&positionX=0&positionY=0.9&positionZ=-0.3&range=enabled&rangeEnd=40&rangeStart=0&reflection=0.1&rotationX=45&rotationY=0&rotationZ=0&shader=defaults&type=waterPlane&uAmplitude=0&uDensity=1.2&uFrequency=0&uSpeed=0.1&uStrength=3.4&uTime=0&wireframe=false

Entretien AI TO DOs

Feature 1: Multiple Language Support using i18n Next

Steps:

  1. Setup i18n Configuration:

    • Install and configure next-i18next package
    • Create language TypeScript files for supported languages
    • Set up language detection and routing
  2. Implement Language Files:

    • Create translation files for each supported language
    • Organize translations by feature/component
    • Include metadata like language name and direction
  3. Add Language Switching:

    • Create language selector component
    • Implement language switching logic
    • Persist language preference
  4. Translate Content:

    • Update components to use translation keys
    • Add translations for all static text
    • Handle dynamic content translation
  5. Test Localization:

    • Verify translations in all supported languages
    • Test RTL language support
    • Validate language switching functionality

Notes:

  • Follow Next.js i18n best practices and documentation
  • Ensure proper fallback handling for missing translations
  • Consider cultural differences in UI/UX design
  • Test performance impact of language bundles

Feature 2: Newsletter Subscription System

Steps:

  1. Database Schema Setup:

    • Create newsletter subscriber table in Prisma schema
    model NewsletterSubscriber {
      id        String   @id @default(cuid())
      email     String   @unique
      status    String   @default("active") // active, unsubscribed
      createdAt DateTime @default(now())
      updatedAt DateTime @updatedAt
    }
  2. Email Validation & Processing:

    • Implement Zod schema for email validation
    • Create server action for subscription handling
    • Set up rate limiting for form submissions
    const newsletterSchema = z.object({
      email: z.string().email("Please enter a valid email address")
    });
  3. Email Service Integration:

    • Configure Resend for confirmation emails (it's there but not working)
    • Create React Email template for welcome message
    • Implement double opt-in confirmation

Technical Requirements:

  • Resend API integration
  • PostgreSQL database
  • Rate limiting middleware
  • Email templating system
  • Error handling and logging

Security Considerations:

  • Email validation and sanitization
  • CSRF protection
  • Rate limiting
  • GDPR compliance
  • Secure storage of subscriber data

About

Land Your Dream Job With Our Interview Practice. πŸš€ Get instant feedback, improve fast, and land your dream role. 95% of users increased confidence after just 3 sessions.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages