Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xi-rick/captains-log
Captain's Log is your personal AI-powered voice transcription logbook. This innovative web application allows you to transcribe spoken words into text, organize your thoughts, and manage important notes. Built with cutting-edge technology and creative design, Captain's Log sets sail to revolutionize how you capture and manage ideas.
https://github.com/xi-rick/captains-log
audio-recorder audio-visualizer javascript mongodb mongodb-atlas nextjs once-ui openai react reactjs shadcn-ui tailwindcss typescript voice whisper
Last synced: about 1 month ago
JSON representation
Captain's Log is your personal AI-powered voice transcription logbook. This innovative web application allows you to transcribe spoken words into text, organize your thoughts, and manage important notes. Built with cutting-edge technology and creative design, Captain's Log sets sail to revolutionize how you capture and manage ideas.
- Host: GitHub
- URL: https://github.com/xi-rick/captains-log
- Owner: xi-Rick
- License: mit
- Created: 2024-11-20T17:51:02.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-11-20T17:52:08.000Z (about 1 month ago)
- Last Synced: 2024-11-20T18:43:49.113Z (about 1 month ago)
- Topics: audio-recorder, audio-visualizer, javascript, mongodb, mongodb-atlas, nextjs, once-ui, openai, react, reactjs, shadcn-ui, tailwindcss, typescript, voice, whisper
- Language: TypeScript
- Homepage: https://captains-log-xiricks-projects.vercel.app/
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Captain's Log - A Personal AI Transcription Logbook
**Captain's Log** is your personal AI-powered voice transcription logbook. This innovative web application allows you to transcribe spoken words into text, organize your thoughts, and manage important notes. Built with cutting-edge technology and creative design, Captain's Log sets sail to revolutionize how you capture and manage ideas.
---
## 🚀 Deploy with One Click
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/import/project?template=https://github.com/xi-rick/captains-log)
## 🛠️ Configuration
### Prerequisites
1. **Node.js** : Install the latest LTS version from [nodejs.org](https://nodejs.org/) .
2. **MongoDB Atlas** : Set up a cloud-based MongoDB database with [MongoDB Atlas](https://www.mongodb.com/cloud/atlas) .
3. **Google Cloud Console** : Set up Google OAuth credentials for authentication.
4. **OpenAI API** : Obtain an API key for transcription services.
### Environment Variables
Create a `.env.local` file in your project root and set the following variables:
```plaintext
MONGODB_URI=YOUR_MONGODB_CONNECTION_STRING
NEXTAUTH_SECRET=LONG_RANDOM_VALUE
NEXTAUTH_URL=http://localhost:3000
NEXT_PUBLIC_OPENAI_API_KEY=YOUR_OPENAI_API_KEY
NEXT_PUBLIC_ALLOWED_EMAIL=YOUR_ALLOWED_EMAIL
```### Step 1: Set Up MongoDB Atlas
1. Sign up for [MongoDB Atlas](https://mongodb.com/atlas) .
2. Create a new cluster and database.
3. In the Atlas dashboard, click **Connect** and follow the steps to get your MongoDB connection string.
4. Replace `YOUR_MONGODB_CONNECTION_STRING` in `.env.local` with your connection string.
5. Your MongoDB connection string should be in the following format:
```bash
mongodb+srv://username:[email protected]/collectionName?retryWrites=true&w=majority&appName=clusterName
```### Step 2: Configure Google Cloud OAuth
1. Visit the [Google Cloud Console](https://console.cloud.google.com) .
2. Create a new project and enable the **Google People API** .
3. Navigate to **APIs & Services > Credentials** and create OAuth 2.0 credentials.
4. Set the **Authorized Redirect URIs** to `http://localhost:3000/api/auth/callback/google`.
5. Note the **Client ID** and **Client Secret** .
6. Update `app/api/auth/[...nextauth]route.ts` to include Google as a provider:
```typescript
import GoogleProvider from 'next-auth/providers/google';providers: [
GoogleProvider({
clientId: process.env.GOOGLE_CLIENT_ID!,
clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
}),
],
```1. Add the following to your `.env.local` file:
```plaintext
GOOGLE_CLIENT_ID=YOUR_GOOGLE_CLIENT_ID
GOOGLE_CLIENT_SECRET=YOUR_GOOGLE_CLIENT_SECRET
```### Step 3: Set Up OpenAI API
1. Sign up for [OpenAI](https://platform.openai.com/) .
2. Obtain your API key from the OpenAI dashboard.
3. Add the key to `.env.local`:
```plaintext
NEXT_PUBLIC_OPENAI_API_KEY=YOUR_OPENAI_API_KEY
```### Step 4: Configure Allowed Email
Restrict access to specific email addresses:
```plaintext
[email protected]
```### Step 5: Set Up NEXTAUTH_SECRET
1. Run the following command to generate a random secret and automatically add it to your .env.local file:
```bash
npx auth secret
```2. Check .env.local:
```bash
NEXTAUTH_SECRET=YOUR_RANDOM_SECRET
```---
## 🚀 Deployment
### Local Development
1. Install dependencies:
```bash
npm install
```2. Run the app in development mode:
```bash
npm run dev
```The app will be accessible at `http://localhost:3000`.
### Production Deployment
1. Build the app:
```bash
npm run build
```2. Start the production server:
```bash
npm start
```### Cloud Deployment with Vercel
1. Sign up for [Vercel](https://vercel.com/) .
2. Import your repository.
3. Add your environment variables in the **Settings > Environment Variables** section.
4. Deploy the app with a single click.
---
## 🌌 Features
- **Voice Transcription** : Leverage OpenAI's AI for seamless voice-to-text conversion.
- **Intuitive Interface** : Built with **shadcn/ui** for a sleek user experience.
- **Secure Authentication** : Powered by **NextAuth** and Google OAuth.
- **Persistent Storage** : Store data securely with MongoDB Atlas.
- **Customizable** : Easily adapt themes and functionality.
- **PWA Ready** : Offline functionality using **Next.js PWA** .
---
## 🌟 Contribution
We welcome contributions! Follow these steps to contribute:
1. Fork the repository and clone it locally:
```bash
git clone https://github.com/xi-Rick/captains-log.git
```2. Create a new branch:
```bash
git checkout -b feature/your-feature-name
```3. Commit your changes:
```bash
git commit -m "Add feature: your-feature-description"
```4. Push your changes:
```bash
git push origin feature/your-feature-name
```5. Submit a pull request on the main repository.
---
## 📜 License
This project is licensed under the [MIT License]() .
---
**Captain's Log** - Your journey, your stories, the galaxy awaits.