Skip to content

Erikgavs/notepad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notepad App

Rust Freya License Platform

A simple, lightweight, and fast note-taking application built with Rust and Freya.

FeaturesInstallationUsageContributing


📋 Overview

Notepad App is a minimalist desktop application designed for quick and efficient note-taking. Built entirely in Rust, it offers exceptional performance and a clean, distraction-free interface. Your notes are automatically saved in JSON format, ensuring your data is always secure and easily accessible.

Note: This application is compatible with Linux, macOS, and Windows.


✨ Features

Feature Description
Create Notes Add new notes with custom title and content through an intuitive popup dialog
Delete Notes Remove unwanted notes with a single click
Auto-Save All changes are automatically persisted to a local JSON file
Welcome Screen Friendly welcome message displayed when no notes exist
Lightweight Minimal resource usage thanks to Rust's efficiency
Fast Startup Launch instantly with no loading delays
Clean UI Distraction-free interface focused on productivity
Portable Data Notes stored in human-readable JSON format

🛠️ Tech Stack

  • Language: Rust (Edition 2024)
  • GUI Framework: Freya v0.3.4
  • Serialization: Serde + serde_json

💻 System Requirements

Supported Platforms

Platform Status
Linux ✅ Fully Supported
macOS ✅ Fully Supported
Windows ✅ Fully Supported

Prerequisites

  • For running the binary:

    • Linux, macOS, or Windows operating system
    • GUI environment (X11/Wayland on Linux, native on macOS/Windows)
  • For building from source:

    • Rust toolchain (Edition 2024)
    • Cargo (included with Rust)

📥 Installation

Option 1: Download Pre-built Binary (Recommended)

  1. Go to the Releases page
  2. Download the latest notepad_app binary
  3. Make it executable and run:
chmod +x notepad_app
./notepad_app

Option 2: Build from Source

Clone the repository and build with Cargo:

# Clone the repository
git clone https://github.com/Erikgavs/notepad.git
cd notepad

# Build in release mode (optimized)
cargo build --release

# The binary will be at: target/release/notepad_app

🚀 Usage

Starting the Application

# If built from source
./target/release/notepad_app

# Or if downloaded binary
./notepad_app

Basic Operations

Action How to
Create a note Click the "New note" button, fill in the title and content, then confirm
View notes All notes are displayed in the main window as a list
Delete a note Click the "Remove" button on any note

Data Storage

Your notes are automatically saved to a file called notas.json in the same directory where the application runs. This file:

  • Is created automatically on first use
  • Updates instantly when you add or delete notes
  • Uses human-readable JSON format
  • Can be backed up or transferred to another machine

Example notas.json structure:

[
  {
    "title": "My First Note",
    "content": "This is the content of my note."
  },
  {
    "title": "Shopping List",
    "content": "Milk, eggs, bread, butter"
  }
]

📁 Project Structure

notepad/
├── Cargo.toml          # Project manifest and dependencies
├── README.md           # This file
├── .gitignore          # Git exclusions
├── notas.md            # Development notes
└── src/
    └── main.rs         # Application source code

🔧 Development

Running in Development Mode

cargo run

Building for Production

cargo build --release

Code Architecture

The application follows a simple and clean architecture:

  • Note struct: Represents a single note with title and content fields
  • load_notes(): Reads and deserializes notes from the JSON file
  • save_notes(): Serializes and writes notes to the JSON file
  • app(): Main UI component using Freya's reactive signal system

🤝 Contributing

Contributions are welcome! Here's how you can help:

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

Ideas for Contribution

  • Note search functionality
  • Categories/Tags for notes
  • Dark/Light theme toggle
  • Export to different formats (TXT, Markdown)
  • Note encryption
  • Cloud sync support

🐛 Known Issues

  • Notes are stored locally (no cloud sync yet)

📄 License

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


👤 Author

Developed with ❤️ by Erikgavs


⭐ Support

If you find this project useful, please consider giving it a star on GitHub! It helps others discover the project.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages