# AI Meeting Assistant An intelligent meeting assistant designed to streamline your workflow by transcribing, summarizing, and managing action items from your meetings. This full-stack application leverages a Python Flask backend for robust API services and a React frontend for a dynamic user experience. ## Key Features - **User Authentication**: Secure login and registration system with role-based access control (Admin, User). - **Meeting Management**: Create, view, and manage meetings. Upload transcripts or generate them from audio. - **AI-Powered Summary**: Automatically generate concise summaries from lengthy meeting transcripts. - **Action Item Tracking**: Automatically preview and batch-create action items from summaries. Manually add, edit, and delete action items with assigned owners and due dates. - **Permission Control**: Granular permissions for editing and deleting meetings and action items based on user roles (Admin, Meeting Owner, Action Item Owner). - **File Processing Tools**: Independent tools for audio extraction, transcription, and text translation. ## Tech Stack **Backend:** - **Framework**: Flask - **Database**: SQLAlchemy with Flask-Migrate for schema migrations. - **Authentication**: Flask-JWT-Extended for token-based security. - **Async Tasks**: Celery with Redis/RabbitMQ for handling long-running AI tasks. - **API**: RESTful API design. **Frontend:** - **Framework**: React.js - **UI Library**: Material-UI (MUI) - **Tooling**: Vite - **API Communication**: Axios ## Prerequisites - Python 3.10+ - Node.js 20.x+ - A message broker for Celery (e.g., Redis or RabbitMQ) ## Installation & Setup ### 1. Backend Setup Clone the repository: ```bash git clone cd AI_meeting_assistant_-_V2.1 ``` Create a virtual environment and install dependencies: ```bash # For Windows python -m venv venv venv\Scripts\activate # For macOS/Linux python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` Create a `.env` file by copying `.env.example` (if provided) or creating a new one. Configure the following: ``` FLASK_APP=app.py SECRET_KEY=your_super_secret_key SQLALCHEMY_DATABASE_URI=sqlite:///meetings.db # Or your preferred database connection string CELERY_BROKER_URL=redis://localhost:6379/0 CELERY_RESULT_BACKEND=redis://localhost:6379/0 ``` Initialize and apply database migrations: ```bash flask db init # Only if you don't have a 'migrations' folder flask db migrate -m "Initial migration" flask db upgrade ``` ### 2. Frontend Setup Navigate to the frontend directory and install dependencies: ```bash cd frontend npm install ``` ## Running the Application The application requires three separate processes to be running: the Flask server, the Celery worker, and the Vite frontend server. **1. Start the Flask Backend Server:** ```bash # From the project root directory flask run ``` The API server will be running on `http://127.0.0.1:5000`. **2. Start the Celery Worker:** Open a new terminal, activate the virtual environment, and run: ```bash # From the project root directory celery -A celery_worker.celery worker --loglevel=info ``` **3. Start the React Frontend Server:** Open a third terminal and run: ```bash # From the 'frontend' directory npm run dev ``` The frontend application will be available at `http://localhost:5173`. Open this URL in your browser.