Solon

80%

Imagem
Imagem
Imagem
Imagem
Imagem
Imagem
Imagem
Imagem
Imagem
Imagem
Imagem
Imagem
TypeScriptTypeScript
NestJSNestJS
React NativeReact Native
FirebaseFirebase
Tailwind CSSTailwind CSS
GeminiGemini

πŸ“± About the Project

Solon is a smart notes application that combines the power of AI with a modern mobile interface. The app offers an intuitive experience for creating, organizing, and managing notes, with advanced features such as voice recognition, AI-powered text processing, and cloud synchronization.

πŸš€ Architecture Overview

The project is structured in three main parts:

Frontend (Mobile)

  • Built with React Native and Expo
  • Modern UI with TailwindCSS
  • Offline-first approach with AsyncStorage
  • Voice recognition and transcription
  • AI-powered text processing

Backend (API)

  • NestJS framework
  • Firebase integration for authentication and database
  • Google Cloud services for AI features
  • RESTful API architecture

Core (Shared)

  • Shared types and interfaces
  • Common utilities and constants
  • Cross-platform business logic

πŸ› οΈ Technologies

Frontend

Backend

Core

πŸ› οΈ Key Features

πŸ“ Note Edition

  • Voice recognition support
  • Tags and markers for precise searches
  • Real-time synchronization

πŸ—‚οΈ Smart Organization

  • Summarization: Generates concise summaries while maintaining key ideas
  • Text Correction: Automatically fixes grammar and spelling errors
  • Topic Extraction: Identifies and extracts main topics from notes
  • Text Formalization: Transforms text to a more formal tone when needed

πŸ“‹ Screen Mapping

Authentication

  • Secure authentication with Firebase Auth
  • Email and password login
  • Simple registration process

Main Features

  • Dashboard with recent notes
  • Smart search functionality
  • Archive for organizing notes
  • User profile and settings

πŸš€ Project Structure

solon/
β”œβ”€β”€ frontend/         # Mobile application
β”‚   β”œβ”€β”€ app/         # Main routes and pages
β”‚   β”œβ”€β”€ components/  # Reusable components
β”‚   β”œβ”€β”€ assets/      # Static resources
β”‚   β”œβ”€β”€ context/     # React contexts
β”‚   β”œβ”€β”€ utils/       # Utility functions
β”‚   β”œβ”€β”€ constants/   # Constants and configurations
β”‚   └── functions/   # Business functions
β”‚
β”œβ”€β”€ backend/         # API server
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ annotations/  # Notes module
β”‚   β”‚   β”œβ”€β”€ auth/        # Authentication
β”‚   β”‚   β”œβ”€β”€ config/      # Global configurations
β”‚   β”‚   β”œβ”€β”€ firebase/    # Firebase integration
β”‚   β”‚   β”œβ”€β”€ gemini/      # AI processing
β”‚   β”‚   β”œβ”€β”€ roles/       # Role management
β”‚   β”‚   β”œβ”€β”€ transcription/ # Voice services
β”‚   β”‚   └── users/       # User management
β”‚
└── core/           # Shared code
    └── src/        # Shared types and utilities

πŸš€ Getting Started

Prerequisites

  • Node.js (version 18 or higher)
  • npm or yarn
  • Expo CLI
  • Firebase account
  • Google Cloud account
  • Android/iOS emulator or physical device

Installation

  1. Clone the repository:
git clone [REPOSITORY_URL]
cd solon
  1. Install dependencies for each part:
# Frontend
cd frontend
npm install

# Backend
cd ../backend
npm install

# Core
cd ../core
npm install
  1. Configure environment variables:
# Backend .env
APP_CREDENTIALS='{google-cloud-credentials}'
API_KEY='your-api-key'
PROJECT_ID='your-project-id'
PROJECT_LOCATION='your-location'
FB_CREDENTIALS='{firebase-credentials}'
FB_API_KEY='your-firebase-api-key'
  1. Start the development servers:
# Backend
cd backend
npm run start:dev

# Frontend
cd frontend
npm start

🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the project
  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

πŸ“„ License

This project is licensed under the MIT License. See the LICENSE file for details.