This repository contains an interview challenge for Inpairs. The goal is to implement a matchmaking system using Next.js, TypeScript, and modern React patterns. You will work with mock user profiles, build a compatibility evaluator, and create a matchmaking engine to find the best matches between users.
- Objective: Implement a matchmaking system that processes user profiles and evaluates compatibility using AI-driven logic.
- Key Tasks:
- Add or modify user profiles in
src/data/mockProfiles.ts - Implement the compatibility evaluation logic in
src/lib/compatibility.ts - Build the matchmaking engine in
src/lib/matchmaking.tsto find and display the best matches - Display users and their compatibility scores on the main page
- Add or modify user profiles in
- Matchmaking System: Event-driven profile processing with AI-based compatibility evaluation
- Modern UI: Built with Shadcn UI components and Tailwind CSS
- Type Safety: Full TypeScript support
- Next.js - React framework
- Shadcn UI - Component library
- Tailwind CSS - Styling
- TypeScript - Type safety
Use the existing TypeScript files in src/lib/ for compatibility and matchmaking logic.
If you prefer Python, use the provided Python backend:
- Navigate to the Python backend directory:
cd python-backend- Install Python dependencies:
pip install -r requirements.txt- Run the Python backend:
python main.pyThe Python API will be available at http://localhost:8000
- Clone the repository
- Install dependencies:
npm install
# or
yarn install
# or
pnpm install-
Set up your environment variables in the
.envfile (if needed). -
Start the development server:
npm run dev
# or
yarn dev
# or
pnpm devOpen http://localhost:3000 with your browser to see the application.
If using the Python backend option:
- Navigate to the Python backend directory:
cd python-backend- Install Python dependencies:
pip install -r requirements.txt- Start the FastAPI server:
python main.pyThe API will be available at http://localhost:8000 with interactive docs at http://localhost:8000/docs
src/app/page.tsx- Main page with instructions and (to be implemented) matchmaking resultssrc/data/mockProfiles.ts- Mock user profiles for testingsrc/lib/compatibility.ts- Compatibility evaluation logic (to be implemented)src/lib/matchmaking.ts- Matchmaking engine logic (to be implemented)src/components/ui/*- Shadcn UI components
python-backend/main.py- FastAPI application entry pointrequirements.txt- Python dependenciesapp/- Application packagemodels/profile.py- Pydantic models for data structuresservices/compatibility.py- Compatibility evaluation logicservices/matchmaking.py- Matchmaking engine logicdata/mock_profiles.py- Python version of mock profilesapi/routes/profiles.py- API route handlers
To learn more about the technologies used in this project:
- Next.js Documentation - Next.js features and API
- Server Actions - Learn about Next.js Server Actions
- Shadcn UI Documentation - Learn about Shadcn UI components
- Tailwind CSS Documentation - Learn about Tailwind CSS
The easiest way to deploy your Next.js app is to use the Vercel Platform.
Check out the Next.js deployment documentation for more details.