Jia is a web application built with Next.js that appears to provide interview assistance, opportunity management, and communication tools. This README provides comprehensive information about the project, how to set it up, run it, and deploy it.
-
Frontend:
- Next.js 15.x (with App Router)
- React 19.x
- SASS for styling
- TypeScript
-
Backend:
- Next.js API Routes (serverless functions)
- MongoDB for database
- Firebase for authentication and storage
-
APIs & Services:
- OpenAI API integration
- Socket.io for real-time communication
-
DevOps:
- Vercel for deployment
- Git for version control
- Node.js (v18 or higher recommended)
- npm or yarn
- MongoDB account (for database connection)
- Firebase account (for authentication)
- OpenAI API key
- Copy the example environment file:
cp .env.example .env- Fill in the required environment variables in
.env:
# OpenAI
OPENAI_API_KEY=your_openai_api_key
# MongoDB
MONGODB_URI=your_mongodb_connection_string
# Firebase
FIREBASE_SERVICE_ACCOUNT=your_firebase_service_account_json
# App Configuration
NEXT_PUBLIC_CORE_API_URL=your_backend_api_url
Using npm:
npm installUsing yarn:
yarn installDevelopment mode with hot reloading (using Turbopack):
npm run dev
# or
yarn devThe application will be available at http://localhost:3000.
npm run build
# or
yarn buildnpm run start
# or
yarn startClean project (removes node_modules, .next, bun.lock, next-env.d.ts):
npm run clean
# or
yarn cleanjia-web-app/
├── .env # Environment variables
├── .env.example # Example environment configuration
├── .gitignore # Git ignore file
├── next-env.d.ts # TypeScript declarations for Next.js
├── package.json # Project dependencies and scripts
├── public/ # Static assets
├── src/ # Source code
│ ├── app/ # Next.js App Router structure
│ │ ├── api/ # API routes
│ │ ├── dashboard/ # Dashboard page
│ │ ├── interview/ # Interview related pages
│ │ ├── login/ # Authentication pages
│ │ ├── my-interviews/ # User interviews management
│ │ ├── applicant/ # Applicant tracking
│ │ ├── talk/ # Communication features
│ │ ├── layout.tsx # Root layout
│ │ └── page.tsx # Home page
│ ├── contexts/ # React contexts
│ └── lib/ # Shared libraries and utilities
│ ├── components/ # Reusable UI components
│ ├── context/ # Context providers
│ ├── firebase/ # Firebase configuration
│ ├── mongoDB/ # MongoDB utilities
│ ├── styles/ # Global styles
│ ├── Modal/ # Modal components
│ ├── Loader/ # Loading UI components
│ ├── PageComponent/ # Page-specific components
│ └── VoiceAssistant/ # Voice interaction features
└── tsconfig.json # TypeScript configuration
- App Router-based routing system
- Authentication with Firebase
- Data storage with MongoDB
- Real-time communication with Socket.io
- AI-powered features using OpenAI
-
Make sure your project is pushed to a Git repository (GitHub, GitLab, or Bitbucket).
-
Ensure all environment variables are properly set in your local
.envfile.
-
Create an account on Vercel if you don't have one.
-
From the Vercel dashboard, click "New Project".
-
Import your Git repository.
-
Configure project:
- Set the framework preset to "Next.js"
- Configure the environment variables (copy from your
.envfile) - Add any additional build settings if needed
-
Click "Deploy".
- Go to your project on Vercel dashboard.
- Navigate to "Settings" > "Environment Variables".
- Add or update your environment variables as needed.
- Redeploy your application for the changes to take effect.
- In your Vercel project, go to "Settings" > "Domains".
- Add your custom domain and follow the verification steps.
Please follow the existing code style and organization when contributing to the project. Make use of TypeScript for type safety.
- If you encounter issues with the MongoDB connection, verify your connection string and network access settings.
- For Firebase authentication problems, check your Firebase service account credentials.
- For development issues, try running
npm run cleanfollowed bynpm installandnpm run dev.