Vocal Journaling App
The Vocal Journaling App is a productivity and mindfulness tool designed to help users manage their tasks, goals, and habits while incorporating voice-based journaling and meditation features. The app combines traditional task management with conversational AI, providing a unique experience for users to track their progress, stay organized, and maintain mental well-being.
- Speech-to-Text Journaling: Record and transcribe voice entries for quick and easy journaling.
- Task Management: Organize tasks, goals, and events with a calendar view.
- Meditation Guidance: Interactive meditation tracking with adjustable breath cycles.
- Data Visualization: Graphical representation of progress and task completion.
- Cross-Platform Support: Seamless experience on iOS, Android, and web.
- Node.js (v16 or later)
- npm or Yarn
- Flutter (for mobile app development)
- Git
-
Clone the Repository:
git clone https://github.com/your-username/vocal-journaling-app.git cd vocal-journaling-app
-
Install Dependencies: For the backend:
cd backend npm install
For the frontend:
cd frontend flutter pub get
-
Set Up Environment Variables: Create a
.env
file in the backend directory with the following:PORT=5000 MONGO_URI=your_mongodb_uri GOOGLE_API_KEY=your_google_cloud_api_key
-
Run the Application: Start the backend server:
cd backend npm start
Launch the frontend application:
cd frontend flutter run
- Launch the application on your device or simulator.
- Navigate through the main sections:
- Tasks: Add or manage tasks and goals.
- Journaling: Tap the microphone icon to record and transcribe a journal entry.
- Meditation: Select a meditation type and adjust breath cycles.
Here’s how to call the speech-to-text API from the backend:
const { SpeechClient } = require('@google-cloud/speech');
const client = new SpeechClient();
async function transcribeAudio(audioBuffer) {
const request = {
audio: { content: audioBuffer.toString('base64') },
config: { encoding: 'LINEAR16', sampleRateHertz: 16000, languageCode: 'en-US' },
};
const [response] = await client.recognize(request);
return response.results.map(result => result.alternatives[0].transcript).join('\n');
}
- Frontend: Built with Flutter for cross-platform compatibility.
- Backend: Node.js with Express for REST API support.
- Database: MongoDB for storing user data and journaling entries.
- APIs: Google Cloud Speech-to-Text for transcription and Firebase for authentication.
- Input: User interacts via voice or UI components.
- Processing: Voice data is transcribed by the backend and stored in MongoDB.
- Output: Processed data is displayed as text entries, progress graphs, or visual cues.
- Design Principles: Minimalist and high-contrast UI for better accessibility.
- Tools: Designed in Figma, implemented with Flutter widgets.
- Libraries: Utilizes packages like
provider
for state management andflutter_chart
for visual data representation.
We welcome contributions to improve this project!
- Fork the repository and create a new branch:
git checkout -b feature-name
- Make changes and commit them with clear messages:
git commit -m "Add new feature: description"
- Push your branch and create a pull request:
git push origin feature-name
- Use the issue tracker to report bugs or suggest features.
- Be respectful and constructive in all communications.
- Adhere to the Contributor Covenant Code of Conduct.
This project is licensed under the MIT License. See the LICENSE file for details.
For support or inquiries, reach out to:
- Email: [email protected]
- GitHub Issues: https://github.com/your-username/vocal-journaling-app/issues
- Twitter: @VocalJournalApp