Skip to content

A voice transcription and logging web app built with TypeScript, Captain's Log leverages cutting-edge technologies like OpenAI, ShadCN/UI, MongoDB, and more to provide a seamless and immersive experience for users.

License

Notifications You must be signed in to change notification settings

xi-Rick/captains-log

Repository files navigation

Captain's Log - A Personal AI Transcription Logbook

Captain's Log Logo

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

🛠️ Configuration

Prerequisites

  1. Node.js : Install the latest LTS version from nodejs.org .

  2. MongoDB Atlas : Set up a cloud-based MongoDB database with MongoDB Atlas .

  3. Google Cloud Console : Set up Google OAuth credentials for authentication.

  4. OpenAI API : Obtain an API key for transcription services.

Development

You need to pass an env. variable with the MongoDB connection string, as well as any variables required by next-auth:

NEXTAUTH_SECRET=
MONGO_URI=
NEXTAUTH_SECRET=
GOOGLE_APP_CLIENT_ID=
GOOGLE_APP_CLIENT_SECRET=
NEXTAUTH_URL=
OPENAI_API_KEY=
ALLOWED_EMAIL=

How to get these variables?


The connection string looks something like this:

mongodb+srv://<user>:<password>@cluster0.<org>.mongodb.net/<database_name>?retryWrites=true&w=majority

In your cluster, click Connect:

alt text

Under the Connect your application section, click Drivers:

alt text

Click the Copy button next to the connection string:

alt text

Replace <password> with the password for your user. Ensure any option params are URL encoded.



Set Up NEXTAUTH_URL

When deploying to production, set the NEXTAUTH_URL environment variable to the canonical URL of your site.

NEXTAUTH_URL=https://example.com

If you're running locally, set it to http://localhost:3000

Set Up NEXTAUTH_SECRET

  1. Run the following command to generate a random secret and automatically add it to your .env.local file:
npx auth secret

Set Up OpenAI API

  1. Sign up for OpenAI .

  2. Obtain your API key from the OpenAI dashboard.

  3. Add the key to .env.local:

  4. Add a few dollars to your OpenAI account. And I do mean like 5.

OPENAI_API_KEY=YOUR_OPENAI_API_KEY

Configure Allowed Email

Restrict access to specific email addresses:

ALLOWED_EMAIL=allowed@example.com

🚀 Deployment

Local Development

  1. Install dependencies:
npm install
  1. Run the app in development mode:
npm run dev

The app will be accessible at http://localhost:3000.

Production Deployment

  1. Build the app:
npm run build
  1. Start the production server:
npm start

alt text

🌌 Features

  • Voice Transcription : Leverage OpenAI's AI for seamless voice-to-text conversion.

  • Voice Commands : Enable users to interact with the app using voice commands.

  • 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:
git clone https://github.com/xi-Rick/captains-log.git
  1. Create a new branch:
git checkout -b feature/your-feature-name
  1. Commit your changes:
git commit -m "Add feature: your-feature-description"
  1. Push your changes:
git push origin feature/your-feature-name
  1. 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.

About

A voice transcription and logging web app built with TypeScript, Captain's Log leverages cutting-edge technologies like OpenAI, ShadCN/UI, MongoDB, and more to provide a seamless and immersive experience for users.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages