Building an AI Meeting Assistant becomes much easier when the project starts with a clean repository, a predictable folder structure, and a working development environment.
In this first practical article, we will create the GitHub repository that will contain the complete Minimal AI Meeting Assistant. We will also prepare separate backend and frontend folders, initialize version control, and create the initial project documentation.
No transcription, summarization, or AI processing will be added yet.
The goal is to create a stable foundation that we can extend one feature at a time throughout the development series.
What We Are Building
The completed Minimal AI Meeting Assistant will eventually allow users to:
- Upload a meeting audio recording.
- Generate a transcript.
- Create an AI-generated meeting summary.
- Extract action items.
- Review previously processed meetings.
The first version will use an upload-based workflow rather than joining live meetings.
Meeting audio upload ↓Audio storage ↓Speech-to-text transcription ↓AI-generated summary ↓Action-item extraction ↓Meeting results page
This approach keeps the prototype small enough to build, understand, test, and document.
Planned Technology Stack
The project will use the following technologies.
Backend
Frontend
AI Processing
- Whisper or Faster-Whisper for transcription
- A large language model for summaries and action items
Development and Deployment
Not all these technologies will be installed in this article. They are listed here so that the direction of the project remains clear.
Prerequisites
Before starting, make sure the following applications are installed.
Git
Run:
git --version
A successful result should look similar to:
git version 2.50.0
Python
Run:
python --version
Depending on your operating system, you may need to use:
python3 --version
For this project, use Python 3.11 or newer.
Node.js
Run:
node --version
Use a currently supported Node.js version that is compatible with the frontend dependencies.
Also verify npm:
npm --version
Visual Studio Code
Visual Studio Code is not required, but it is a practical editor for this project because it supports Python, TypeScript, Git, terminals, and project-wide search.
Step 1: Create the GitHub Repository
Sign in to GitHub and create a new repository.
Use the following repository name:
minimal-ai-meeting-assistant
Suggested description:
An open-source minimal AI meeting assistant built with FastAPI, React, PostgreSQL, and AI transcription and summarization services.
Choose whether the repository should be public or private.
A public repository is useful if the project will support the development articles published on MeetingNotesAI.org.
During repository creation, you may select:
- Add a README file
- Add a Python
.gitignore - Add an MIT license
Alternatively, these files can be created locally in the next steps.
Suggested Screenshot
Add a screenshot showing the GitHub repository creation page with:
- Repository name
- Description
- Visibility setting
Step 2: Clone the Repository
Open a terminal and navigate to the folder where you store development projects.
Clone the repository:
git clone https://github.com/YOUR-USERNAME/minimal-ai-meeting-assistant.git
Replace YOUR-USERNAME with your GitHub username.
Move into the project directory:
cd minimal-ai-meeting-assistant
Confirm the repository status:
git status
You should see output similar to:
On branch mainYour branch is up to date with 'origin/main'.nothing to commit, working tree clean
Suggested Screenshot
Add a screenshot of the terminal after cloning the repository successfully.
Step 3: Create the Initial Project Structure
The backend and frontend will be kept in separate top-level folders.
Create the folders:
mkdir backendmkdir frontendmkdir docs
On Windows PowerShell, the same commands should work.
Create a folder for GitHub Actions:
mkdir .githubmkdir .github/workflows
The initial structure should now look like this:
minimal-ai-meeting-assistant/│├── .github/│ └── workflows/│├── backend/│├── docs/│├── frontend/│├── .gitignore├── LICENSE└── README.md
Some files may not exist yet, depending on the options selected when creating the GitHub repository.
Step 4: Open the Project in Visual Studio Code
From the project directory, run:
code .
If the code command is unavailable, open Visual Studio Code manually and select:
File → Open Folder
Choose the minimal-ai-meeting-assistant folder.
The Explorer panel should show the backend, frontend, docs, and .github directories.
Suggested Screenshot
Add a screenshot of the initial folder structure in the Visual Studio Code Explorer.

Step 5: Create the .gitignore File
Create a .gitignore file in the repository root.
Add the following content:
# Python__pycache__/*.py[cod]*.pyo*.pyd.Pythonvenv/.venv/env/ENV/.pytest_cache/.mypy_cache/.ruff_cache/# Environment files.env.env.local.env.development.env.production# Uploaded filesbackend/uploads/*!backend/uploads/.gitkeep# Database files*.db*.sqlite*.sqlite3# Node.jsnode_modules/frontend/node_modules/npm-debug.log*yarn-debug.log*yarn-error.log*pnpm-debug.log*# Frontend buildsfrontend/dist/frontend/build/# Testing and coveragecoverage/htmlcov/.coverage# IDE files.vscode/.idea/# Operating system files.DS_StoreThumbs.db# Docker overridesdocker-compose.override.yml
Environment files must never be committed because they may contain API keys, database passwords, and other sensitive configuration values.
Uploaded meeting recordings should also remain outside version control.
Step 6: Create the Initial README
Open README.md and replace its contents with the following:
Minimal AI Meeting AssistantAn open-source minimal AI Meeting Assistant built as a practical development project for MeetingNotesAI.org. Project GoalThe goal is to build a focused web application that can: Upload meeting audio recordings Generate transcripts Create structured meeting summaries Extract action items Store and display previous meetings Planned Technology Stack Backend Python FastAPI SQLAlchemy Alembic PostgreSQL Frontend React TypeScript Vite AI Services Whisper or Faster-Whisper Large language model for summaries and action items Planned WorkflowtextUpload audio ↓Store recording ↓Generate transcript ↓Generate summary ↓Extract action items ↓Display meeting results
Repository Structure
minimal-ai-meeting-assistant/├── backend/├── frontend/├── docs/├── .github/├── .gitignore├── LICENSE└── README.md
Development Status
The project is currently in the foundation phase.
Documentation
The complete development series is published on MeetingNotesAI.org.
License
This project is licensed under the MIT License.
This README will evolve as new functionality is added.
## Step 7: Create the Development Roadmap
Inside the `docs` folder, create:
```text
development-roadmap.md
Add the following content:
Development Roadmap Phase 1: Project Foundation Create the GitHub repository Create backend and frontend folders Initialize the FastAPI backend Initialize the React frontend Add environment configuration Add a backend health-check endpoint Phase 2: Audio Upload Build the meeting upload interface Validate supported audio formats Store uploaded recordings Create meeting database records Display upload confirmation Phase 3: Transcription Integrate Whisper or Faster-Whisper Create the transcription service Store generated transcripts Display transcript content Phase 4: Meeting Intelligence Generate meeting summaries Extract action items Identify owners and deadlines Store structured AI output Phase 5: User Interface Create a meeting history page Create a meeting details page Display processing statuses Improve error handling Phase 6: SaaS Features Add user registration Add authentication Separate meetings by user Add monthly usage limits Add Stripe subscriptions Phase 7: Production Readiness Add automated tests Add GitHub Actions Containerize the application Add production logging Add security controls Deploy the application
The roadmap gives contributors and readers a clear overview of the project’s direction.
Step 8: Add Placeholder Files
Git does not track empty folders. To keep the initial structure visible in the repository, add a .gitkeep file to the empty folders.
Create:
backend/.gitkeepfrontend/.gitkeep.github/workflows/.gitkeep
You can create these files manually in Visual Studio Code.
The structure should now be:
minimal-ai-meeting-assistant/│├── .github/│ └── workflows/│ └── .gitkeep│├── backend/│ └── .gitkeep│├── docs/│ └── development-roadmap.md│├── frontend/│ └── .gitkeep│├── .gitignore├── LICENSE└── README.md
Step 9: Review the Repository Changes
Run:
git status
You should see the new files listed as untracked or modified.
Review the changes before committing:
git diff
New untracked files may not appear in git diff until they are staged.
Stage the project files:
git add .
Review the staged changes:
git status
Step 10: Create the First Commit
Commit the project foundation:
git commit -m "Initialize project repository structure"
Push the commit to GitHub:
git push origin main
Open the repository in GitHub and confirm that the new folder structure is visible.
Suggested Screenshot
Add a screenshot of the GitHub repository after the first commit, showing:
- Backend folder
- Frontend folder
- Docs folder
- README
.gitignore
Step 11: Create the First GitHub Milestone
Inside the GitHub repository, open:
Issues → Milestones → New milestone
Create a milestone with the following values:
Title
v0.1.0 — Project Foundation
Description
Establish the backend, frontend, documentation, and development environment for the Minimal AI Meeting Assistant.
The milestone can later contain issues for:
- FastAPI setup
- React setup
- Environment configuration
- Health endpoint
- CORS configuration
Step 12: Create the Initial GitHub Issues
Create the following issues.
Issue 1
Initialize the FastAPI backend
Description:
Create the initial FastAPI application, install the core backend dependencies, and verify that the development server starts successfully.
Issue 2
Initialize the React and TypeScript frontend
Description:
Create the frontend with React, TypeScript, and Vite, and verify that the local development server works.
Issue 3
Add backend environment configuration
Description:
Create environment configuration using Pydantic settings and provide a safe .env.example file.
Issue 4
Create the backend health-check endpoint
Description:
Add an API health-check route that returns the current application status.
Assign each issue to the v0.1.0 — Project Foundation milestone.
Suggested Screenshot
Add a screenshot of the GitHub milestone and the initial issues.
Testing the Result
Before considering this article complete, confirm the following.
- The repository exists on GitHub.
- The repository has been cloned locally.
- The backend folder exists.
- The frontend folder exists.
- The docs folder exists.
- The
.gitignorefile exists. - The README is visible on GitHub.
- The development roadmap is committed.
- The first milestone has been created.
- The first GitHub issues have been created.
git statusreports a clean working tree.
Run:
git status
Expected result:
On branch mainYour branch is up to date with 'origin/main'.nothing to commit, working tree clean
Common Problems
Git Is Not Recognized
If the following error appears:
'git' is not recognized as an internal or external command
Git is either not installed or has not been added to the system PATH.
Install Git and restart the terminal.
The code Command Is Not Recognized
Open Visual Studio Code manually and use the Open Folder option.
The code command can also be added to the PATH during the Visual Studio Code installation.
Empty Folders Are Missing on GitHub
Git does not track empty directories.
Add a .gitkeep file to each empty folder and commit it.
Push Is Rejected
Pull the remote changes before pushing:
git pull origin main
Resolve any conflicts, commit the result, and push again.
What We Accomplished
The Minimal AI Meeting Assistant now has:
- A dedicated GitHub repository
- A clean backend and frontend separation
- Initial project documentation
- A development roadmap
- Version-control protection for secrets and uploaded files
- A first GitHub milestone
- A small set of actionable development issues
No application code has been written yet, but the project now has a stable and documented foundation.
Next Article
The next article in the development series will be:
Generating the FastAPI Project Structure for the Minimal AI Meeting Assistant
In that article, we will:
- Create a Python virtual environment
- Install FastAPI and Uvicorn
- Create the backend application structure
- Add the main FastAPI application
- Run the local API server
- Verify the automatically generated API documentation
That will be the first point at which the Minimal AI Meeting Assistant becomes a running application.