Skip to content

Latest commit

 

History

History
150 lines (120 loc) · 4.15 KB

README.md

File metadata and controls

150 lines (120 loc) · 4.15 KB

Noted

A modern, minimalist note-taking application that lets you record and transcribe your thoughts effortlessly. Built with Angular and Firebase, enhanced with Groq AI for intelligent note processing.

Features

  • Voice Recording: Capture your thoughts through voice recordings
  • Real-time Transcription: Automatic transcription of voice recordings to text
  • AI-Powered Processing: Intelligent note summarization and tagging using Groq AI
  • Google Authentication: Secure login with your Google account
  • Cloud Storage: All notes are securely stored in Firebase
  • Responsive Design: Beautiful, minimalist interface that works on all devices
  • Tag System: Organize your notes with customizable tags and AI-suggested tags
  • Rich Text Support: Format your notes with markdown-style syntax
  • Offline Support: Local storage for audio recordings

Tech Stack

  • Frontend: Angular 17
  • Authentication: Firebase Authentication
  • Database: Firebase Realtime Database
  • Storage: Firebase Storage
  • Hosting: Firebase Hosting
  • Speech-to-Text: Web Speech API
  • AI Processing: Groq API
  • Styling: SCSS with CSS Variables

Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • npm (v9 or higher)
  • Angular CLI (v17 or higher)
  • Firebase CLI
  • Groq API Key

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/noted.git
cd noted
  1. Install dependencies:
npm install
  1. Set up environment variables:
    • Create src/environments/environment.ts and environment.prod.ts
    • Add your Firebase and Groq API configurations:
export const environment = {
  production: false, // or true for prod
  firebase: {
    // Your Firebase config
  },
  groq: {
    apiKey: 'your-groq-api-key'
  }
};
  1. Set up Firebase:

    • Create a new Firebase project
    • Enable Authentication with Google provider
    • Enable Realtime Database
    • Enable Storage
    • Copy your Firebase config to environments files
  2. Start the development server:

ng serve
  1. Open your browser and navigate to http://localhost:4200

Building for Production

ng build --configuration production

Deployment

firebase deploy

Project Structure

noted/
├── src/
│   ├── app/
│   │   ├── core/              # Core modules, services, and components
│   │   │   ├── components/    # Shared components (header, etc.)
│   │   │   ├── services/      # Global services (auth, groq, etc.)
│   │   │   └── models/        # TypeScript interfaces and models
│   │   ├── features/          # Feature modules
│   │   │   ├── note-list/     # Note list view
│   │   │   ├── note-detail/   # Note detail view
│   │   │   └── recording-dialog/  # Recording functionality
│   │   └── app.component.*    # Root component
│   ├── assets/               # Static assets
│   └── environments/         # Environment configurations
└── firebase.json            # Firebase configuration

Features in Detail

Authentication

  • Google Sign-in integration
  • Secure user sessions
  • Profile management with user photo and name display

Note Management

  • Create notes through voice recording
  • Real-time transcription of audio
  • AI-powered summarization and tagging
  • Edit and format note content
  • Add and manage tags
  • Delete notes
  • View note history

AI Integration

  • Automatic note summarization
  • Smart tag suggestions
  • Content organization
  • Key points extraction

User Interface

  • Dark mode design
  • Responsive layout
  • Intuitive navigation
  • Clean, minimalist aesthetic

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Security

This project uses environment files to store sensitive API keys and configurations. These files are not committed to the repository. See the Installation section for setup instructions.