Skip to content

Qyuzet/mern-persona

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MERN-Persona

React TypeScript JavaScript Vite Node.js npm Tailwind CSS REST Express mongoDB GCP Auth0 Postman Figma

MERN-Persona is a web application built with the MERN stack (MongoDB, Express.js, React.js, and Node.js). The project is designed to analyze essays and provide personality predictions based on the written content. It is specifically tailored to support HR departments or recruiters in gaining deeper insights into their employees' or candidates' personalities efficiently and effectively. TRY NOW!

image

Image 1 Image 2

Key Features

  1. Authentication:

    • Login and sign-up via manual credentials or Google OAuth 2.0.
  2. Essay Analysis (Alpha Model):

    • Analyze text extracted from PDF files (single or multiple).
    • Predict the writer's personality based on their essay.
    • Provide insights into strengths, weaknesses, and MBTI (e.g., INTJ, ENFP) predictions.
    • Generate personality scores and a summary.
  3. Text-to-Speech:

    • Converts the analyzed essay into synthesized speech using AI-powered text-to-speech (TTS) APIs.
  4. User Data Management:

    • Store user profiles and analysis data securely in MongoDB.
  5. HR Application:

    • Designed to help HR departments reduce employee turnover by better understanding employees' personalities.
    • Offers a cost-effective alternative to hiring psychologists or psychiatrists for personality insights.

Tech Stack

Frontend:

  • React.js (with TypeScript for type safety)
  • Tailwind CSS for responsive and modern UI
  • Zustand & Router for API communication

Backend:

  • Node.js with Express.js for server-side logic
  • MongoDB as the NoSQL database
  • Google OAuth 2.0 for third-party authentication
  • OpenAI API for advanced personality analysis
  • PDF-to-Text Conversion libraries for extracting essay content

Additional Tools:

  • TypeScript for frontend file conversions
  • ESLint for code linting
  • Dotenv for managing environment variables

Installation and Setup

  1. Clone the repository:

    git clone https://github.com/Qyuzet/mern-persona.git
    cd mern-persona
  2. Install dependencies:

    # Install backend dependencies
    cd backend
    npm install
    
    # Install frontend dependencies
    cd ../frontend
    npm install
  3. Create an .env file in the root of the backend directory and specify the following variables:

    MONGO_URI=your_mongodb_connection_string
    GOOGLE_CLIENT_ID=your_google_client_id
    GOOGLE_CLIENT_SECRET=your_google_client_secret
    OPENAI_API_KEY=your_openai_api_key
    PORT=5000
  4. Start the application:

    # Start the backend server
    cd backend
    npm start
    
    # Start the frontend development server
    cd ../frontend
    npm start
  5. Open your browser and navigate to:

    http://localhost:3000
    

File Structure

Backend:

  • server.js: Entry point for the backend server.
  • config/db.js: MongoDB connection configuration.
  • controller/user.controller.js: Handles user-related logic.
  • model/user.model.js: Defines the user schema for MongoDB.
  • router/user.route.js: API endpoints for user-related operations.

Frontend:

  • src/: Contains all the React components.
  • public/index.html: Main HTML file for the React app.
  • tailwind.config.js: Tailwind CSS configuration.
  • tsconfig.json: TypeScript configuration.

Future Plans

  • Add support for additional personality frameworks beyond MBTI.
  • Improve the TTS experience with more natural voice synthesis.
  • Add user role management for HR teams and employees.
  • Enable export options for analysis results (PDF, Excel, etc.).

License

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

SOP: Persona Web Application Demo

Objective:

To demonstrate the functionality of the Persona web application for analyzing employee personalities based on their essays or CVs.

Key Steps:

  1. Authentication and Sign-Up:

    • Use OAuth2 from Google for authentication.
    • Sign up for a new account if needed.
    • Sign in with your credentials.
  2. Analysis:

    • Click on a PDF to analyze a person's personality.
    • Search for the person you want to analyze.
    • Click on the payload and analyze the essay to get results like probable MBTI, good and bad aspects.
  3. Manual Append:

    • Type an essay manually in the system.
    • Click on "propagate" to add the data to the current payload.
  4. Bulk Analysis:

    • Open multiple PDFs to append automatically.
    • Click on "bulk auto" to analyze each one automatically.
  5. Quality Control:

    • Ensure the quality of the data inside the essay for accurate results.
    • Avoid using AI-generated content for analysis.
  6. Exploration and Future Models:

    • Explore more robust document analysis options in future versions.
    • Consider the Explorer and Quanta models for deeper analysis.
  7. Logout:

    • Log out of the system once analysis is complete.

Cautionary Notes:

  • Quality of results depends on the quality of data in the essays.
  • Avoid using AI-generated content for analysis to ensure accuracy.
  • Use the desktop version of the interface for optimal functionality.

Tips for Efficiency:

  • Clear unnecessary data to keep the system organized.
  • Regularly update to newer models for enhanced analysis capabilities.
  • Use desktop version for optimal user experience.

By following these steps, you can effectively demonstrate the Persona web application and analyze employee personalities with accuracy and efficiency.

Link to Demo Video

https://loom.com/share/7f69e2b36a0a4b52921fe7185c9f0e06?src=composer

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published