Skip to content

ritesh-1227/tenzor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tenzor - LinkedIn Post Summarizer

Tenzor is an AI-powered tool that summarizes LinkedIn posts and provides explanations tailored to your expertise level. This repository contains the full-stack application including a Chrome extension, backend API, and web frontend.

I'm actively working to rid myself of any charges and hopefully convert this into a open-source project.
Please do not use any secrets/keys/passwords from the files

Overview

Tenzor helps professionals save time and extract insights from technical LinkedIn posts by:

  • Generating concise, personalized summaries at your preferred expertise level (beginner, intermediate, or advanced)
  • Allowing follow-up questions about the content
  • Providing customized regeneration with different focus areas
  • Tracking usage statistics and allowing summary downloads

Project Structure

The project consists of three main components:

1. Chrome Extension

The Chrome extension integrates directly with LinkedIn, adding a "Tenzor-It" button to posts, allowing users to generate summaries with just one click.

chrome-extension/
├── assets/              # Icons and images
├── css/                 # Styles for the extension
├── html/                # Popup and overlay HTML files
├── js/                  # Extension scripts
│   ├── background.js    # Background service worker
│   ├── content.js       # Content script injected into LinkedIn
│   └── popup.js         # Controls the extension popup
└── manifest.json        # Extension configuration

2. Backend API

The Flask-based backend handles user authentication, communication with the Gemini API for AI text generation, and database operations.

backend/
├── migrations/          # Database migration scripts
├── models/              # SQLAlchemy database models
├── routes/              # API route handlers
│   ├── auth.py          # Authentication endpoints
│   ├── summarizer.py    # Summary generation endpoints
│   └── user.py          # User data endpoints
├── services/            # Business logic
│   ├── ai_service.py    # Gemini API integration
│   ├── auth_service.py  # Authentication logic
│   └── summarizer_service.py # Summary generation logic
├── utils/               # Helper utilities
├── app.py               # Main Flask application
└── requirements.txt     # Python dependencies

3. Web Frontend

The React-based frontend provides user account management, summary viewing, and statistics tracking.

frontend/
├── public/              # Static assets
└── src/
    ├── components/      # React components
    ├── services/        # API client services
    ├── App.js           # Main application component
    └── index.js         # Application entry point

Technology Stack

  • Frontend: React, Tailwind CSS, Chart.js
  • Backend: Flask, SQLAlchemy, JWT authentication
  • Database: PostgreSQL
  • AI: Google Gemini API
  • Extension: Chrome Extension Manifest V3
  • Containerization: Docker, Docker Compose

Installation and Setup

Prerequisites

  • Node.js and npm
  • Python 3.10+
  • Docker and Docker Compose
  • Chrome browser

Development Setup

  1. Clone the repository
git clone https://github.com/yourusername/tenzor.git
cd tenzor
  1. Setup environment files

Create .env files for both backend and frontend based on the provided templates.

  1. Start the backend and database
docker-compose up -d postgres backend
  1. Start the frontend development server
cd frontend
npm install
npm start
  1. Load the Chrome extension
  • Open Chrome and navigate to chrome://extensions/
  • Enable "Developer mode"
  • Click "Load unpacked" and select the chrome-extension directory

Alternatively, use the setup script which automates most of these steps:

chmod +x setup.sh
./setup.sh

Usage

  1. Sign up for an account at http://localhost:3000
  2. Navigate to LinkedIn and find a technical post
  3. Click the "Tenzor-It" button that appears in the post's action bar
  4. Select your expertise level and desired depth
  5. View your summary and ask follow-up questions

API Documentation

Authentication Endpoints

  • POST /api/auth/register - Register a new user
  • POST /api/auth/login - Log in a user
  • POST /api/auth/refresh - Refresh authentication token
  • GET /api/auth/profile - Get user profile
  • PUT /api/auth/profile - Update user profile

Summarizer Endpoints

  • POST /api/summarize - Generate a summary
  • POST /api/followup - Ask a follow-up question
  • POST /api/regenerate - Regenerate a summary with a different focus
  • POST /api/feedback - Submit feedback for a summary

User Endpoints

  • GET /api/user/stats - Get usage statistics
  • GET /api/user/summaries - Get list of summaries
  • GET /api/user/summaries/:id - Get specific summary details
  • GET /api/user/download/summaries - Download summaries
  • GET /api/user/download/stats - Download statistics

Authentication Flow

The system uses JWT (JSON Web Tokens) for authentication:

  1. User logs in through the web app
  2. The backend returns access and refresh tokens
  3. The tokens are stored in localStorage
  4. The extension receives the token via Chrome messaging API
  5. All API requests include the token in the Authorization header

Database Schema

The database includes the following main tables:

  • users - User accounts and API keys
  • summaries - Generated post summaries
  • follow_ups - Follow-up questions and responses
  • feedbacks - User feedback on summaries
  • usage_stats - Usage statistics tracking

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

MIT License

Acknowledgments

  • Google Gemini API for AI text generation
  • LinkedIn for the platform integration
  • Initial contributors:
    • Sidharth -> POC, initial git contribution, competitor & market analysis
    • Vaikunth Desai -> Initial POC on local and google trend analysis
    • Ashritha -> Website frontend POC and initial research

About

An AI-powered tool that summarizes LinkedIn posts and provides explanations tailored to your expertise level

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors