Wcareer
React + Vite This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. Currently, two official plugins are available: - @vitejs/plugin-rea...
Technical Architecture & Engineering Overview
Detailed system design and core implementation
Core System Architecture
The system is divided into distinct layers: a client (client/) built with React 19, Tailwind CSS, and Radix UI for a responsive UI; a mockInterview module using Next.js for interview simulations; a server (server/) running Express 4.21 with JWT authentication, bcrypt, and Nodemailer for email workflows; and a WCareers Python service (llm-server/) that hosts LLM‑driven models (cognitive_test_model.py, resume_analysis.py, etc.) behind a FastAPI/Streamlit API. Communication between the JavaScript and Python layers occurs via RESTful HTTP calls using Axios on the frontend and requests in the backend.
Data Ingestion & Processing Pipelines
User‑generated content (resumes, skill updates, interview answers) is first validated by middleware (authMidd, CORS, cookie parser) before being persisted to MongoDB. Skill relationships are enriched and stored in Neo4j, enabling graph queries for the skill‑graph endpoints (/api/skill/graph). For semantic operations, documents are vectorized with Sentence Transformers and indexed in FAISS, supporting endpoints like /api/skill/trending. The AI layer consumes these vectors and external data sources (via BeautifulSoup4, PyPDF) to generate personalized recommendations.
Execution Flow
A typical user journey starts at http://localhost:5173 where the React app authenticates via /api/auth/login. Authenticated requests fetch data from /api/job, /api/roadmap, or trigger AI services such as /api/resume/analyze. Mock interview creation (POST /api/interview/create) stores a session in MongoDB, then the frontend polls /api/interview/:mockId for questions and submits answers to /api/interview/answer. Feedback is generated by the Python LLM service and returned via /api/interview/:mockId/feedback.
Security Guardrails All protected routes enforce JWT verification and role‑based checks. Sensitive operations (password reset, email verification) use one‑time‑passwords sent via Nodemailer. Environment secrets are managed with dotenv, and Docker containers isolate the AI models from the Node.js runtime. Rate limiting and input sanitization are applied at the Express middleware level to mitigate abuse.
System Diagrams & Flow Visualizations
Interactive Mermaid architecture & execution flows
Core System Features
Key capabilities & architectural features
User registration, login, and secure JWT authentication.
User registration, login, and secure JWT authentication.
Resume upload, parsing, AI‑driven analysis, and enhancement suggestions.
Resume upload, parsing, AI‑driven analysis, and enhancement suggestions.
Skill tracking with trending insights and graph‑based relationship visualization.
Skill tracking with trending insights and graph‑based relationship visualization.
AI‑generated career roadmaps and personalized job recommendations.
AI‑generated career roadmaps and personalized job recommendations.
Mock interview creation, real‑time question delivery, and AI feedback.
Mock interview creation, real‑time question delivery, and AI feedback.
Community forum with discussions, posting, and notification system.
Community forum with discussions, posting, and notification system.
Dashboard with analytics, charts, and progress tracking.
Dashboard with analytics, charts, and progress tracking.
PDF generation of resumes and roadmaps via jsPDF.
PDF generation of resumes and roadmaps via jsPDF.
Video interview recording using React Webcam.
Video interview recording using React Webcam.
Multi‑modal AI integration (text, voice, PDF) powered by LangChain and Gemini AI.
Multi‑modal AI integration (text, voice, PDF) powered by LangChain and Gemini AI.
Engineering Challenges & Solutions
Problem statements & resolution strategies
Balancing polyglot persistence (MongoDB, Neo4j, FAISS) while maintaining data consistency.
Balancing polyglot persistence (MongoDB, Neo4j, FAISS) while maintaining data consistency.
Optimizing LLM inference latency within Docker containers for real‑time feedback.
Optimizing LLM inference latency within Docker containers for real‑time feedback.
Ensuring secure handling of sensitive user data across multiple services and environments.
Ensuring secure handling of sensitive user data across multiple services and environments.
Coordinating version compatibility between React 19, Vite 6, and Next.js modules.
Coordinating version compatibility between React 19, Vite 6, and Next.js modules.
Designing a scalable event‑driven notification system without a dedicated message broker.
Designing a scalable event‑driven notification system without a dedicated message broker.
API Reference & Endpoints
REST API surface & route documentation
| METHOD | ENDPOINT PATH | DESCRIPTION | COPY |
|---|---|---|---|
| POST | /generate_queries | Endpoint defined in WCareers/2_learning_pathway/api.py | |
| POST | /search_and_generate | Endpoint defined in WCareers/2_learning_pathway/api.py | |
| POST | /generate_subheadings | Endpoint defined in WCareers/2_learning_pathway/api.py | |
| POST | /register | Endpoint defined in server/routes/authRoutes.js | |
| POST | /login | Endpoint defined in server/routes/authRoutes.js | |
| POST | /logout | Endpoint defined in server/routes/authRoutes.js | |
| POST | /send-verify-otp | Endpoint defined in server/routes/authRoutes.js | |
| POST | /verify-account | Endpoint defined in server/routes/authRoutes.js | |
| GET | /is-auth | Endpoint defined in server/routes/authRoutes.js | |
| POST | /send-reset-otp | Endpoint defined in server/routes/authRoutes.js | |
| POST | /reset-password | Endpoint defined in server/routes/authRoutes.js | |
| POST | /create | Endpoint defined in server/routes/interviewRoutes.js | |
| GET | /:mockId | Endpoint defined in server/routes/interviewRoutes.js | |
| GET | /user/:userEmail | Endpoint defined in server/routes/interviewRoutes.js | |
| POST | /answer | Endpoint defined in server/routes/interviewRoutes.js | |
| GET | /:mockId/feedback | Endpoint defined in server/routes/interviewRoutes.js | |
| GET | /:mockId/answers | Endpoint defined in server/routes/interviewRoutes.js | |
| GET | /data | Endpoint defined in server/routes/userRoutes.js | |
| GET | / | Endpoint defined in server/server.js |
Key Code Modules & Architecture
Core file entrypoints and service responsibilities
clientModule component managing client source logic
old-HireMe-frontend/srcModule component managing src source logic
mockInterview/appModule component managing app source logic
old-HireMe-frontend/src/componentsModule component managing components source logic
mockInterview/components/uiModule component managing ui source logic
old-HireMe-frontend/src/hooksModule component managing hooks source logic
client/src/pagesModule component managing pages source logic
mockInterview/libModule component managing lib source logic
server/utilsModule component managing utils source logic
old-HireMe-frontend/src/PagesModule component managing Pages source logic
server/servicesModule component managing services source logic
old-HireMe-frontend/src/typesModule component managing types source logic
serverModule component managing server source logic
server/configModule component managing config source logic
server/controllersModule component managing controllers source logic
server/middlewareModule component managing middleware source logic
server/modelsModule component managing models source logic
server/routesModule component managing routes source logic
User Journey Pipeline
- 1User accesses application user interface via browser
- 2User triggers action invoking HTTP/WebSocket API endpoints
- 3Payload processed through AI/ML pipeline or local inference model
- 4Data persisted or retrieved from database storage layer
Execution Code Flow
- 1Client or caller initiates request to application entrypoint
- 2Backend router validates request parameters and applies middleware
- 3Service layer delegates task to ML runtime or LLM API worker
- 4Database ORM/client executes storage query
- 5Application serializes JSON/audio/data response back to client
System FAQ & Technical Specifications
Frequently asked questions and core architecture details
Q: What technologies are used in Wcareer?
Wcareer is engineered using modern full-stack frameworks.
Q: What core engineering problem does Wcareer solve?
React + Vite This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. Currently, two official plugins are available: - @vitejs/plugin-rea...
Q: How is 'Balancing polyglot persistence (MongoDB, Neo4j, FAISS) while maintaining data consistency.' resolved in Wcareer?
Resolved through specialized system architecture and resilient state handling.
Related Systems & Case Studies
Explore similar technical architectures and projects