A Node.js backend service for the ConverseChronicle application, providing audio transcription, summarization, and conversation management capabilities.
- Audio file transcription using Deepgram and Speechmatics
- AI-powered conversation summarization using Claude
- Secure file storage with Supabase
- User authentication with Clerk
- RESTful API endpoints for conversation management
- PostgreSQL database with Prisma ORM
- Runtime: Node.js with TypeScript
- Framework: Express.js
- Database: PostgreSQL
- ORM: Prisma
- Authentication: Clerk
- Storage: Supabase
- AI Services:
- Anthropic Claude (summarization)
- Deepgram (transcription)
- Node.js (v16+)
- PostgreSQL
- npm or yarn
- Clerk account
- Deepgram API key
- Anthropic API key
- Supabase account
- Clone the repository
git clone <repository-url>
cd backend
- Install dependencies
npm install
- Set up environment variables
cp .env.template .env
- Fill in the environment variables in
.env
:
DATABASE_URL=
CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
DEEPGRAM_API_KEY=
SUPABASE_API_KEY=
SUPABASE_URL=
PORT=3000
ANTHROPIC_API_KEY=
SPEECHMATICS_API_KEY=
- Run database migrations
npx prisma migrate dev
npm run dev
npm run build
npm start
GET /recordings
- List all recordingsGET /recordings/:recording_id
- Get recording detailsPOST /recordings/create
- Create new recordingDELETE /recordings/:recording_id
- Delete recordingPUT /recordings/:recording_id
- Update recording
npm test
backend/
├── src/
│ ├── apis/ # External API integrations
│ ├── controllers/ # Request handlers
│ ├── types/ # TypeScript type definitions
│ └── index.ts # Application entry point
├── prisma/
│ └── schema.prisma # Database schema
└── tests/ # Test files
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the ISC License.