Skip to content

Secure encrypted notes app built with Go, React, and Firebase. Notes are encrypted server-side using AES-256-GCM

Notifications You must be signed in to change notification settings

Danindu05/encrypted-notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ” Encrypted Notes

Encrypted Notes is a secure full-stack web application designed for creating, storing, and managing personal notes with strong encryption. Notes are encrypted server-side using AES-256-GCM before being stored, ensuring privacy even if the database is compromised.

🌐 Frontend

  • Modern UI β€” Clean, responsive interface built with React and Tailwind CSS
  • Authentication β€” Email & password login and registration via Firebase Auth
  • Create Notes β€” Add new encrypted notes with title and content
  • Edit Notes β€” View and update notes using modal dialogs
  • Delete Notes β€” Safely remove notes with confirmation
  • Search Notes β€” Instantly filter notes by title or content

πŸ›‘οΈ Backend

  • Secure API β€” REST API built with Go
  • AES-256-GCM Encryption β€” Notes encrypted before storage
  • Decryption on Read β€” Notes decrypted only for authenticated users
  • Firebase Admin SDK β€” Secure access to Firestore
  • Access Control β€” Each user can only access their own notes

πŸ› οΈ Technologies Used

  • Frontend: React, Vite, TypeScript, Tailwind CSS
  • Backend: Go
  • Authentication: Firebase Authentication
  • Database: Firestore
  • Encryption: AES-256-GCM

πŸ” Security Model

  • Notes are never stored in plaintext
  • Encryption keys are managed via environment variables
  • Frontend never has access to encryption keys

πŸ’» Local Development

1. Clone the repository:

git clone https://github.com/Danindu05/encrypted-notes.git
cd encrypted-notes

2. Backend setup

cd backend
go mod tidy
export ENCRYPTION_KEY=Enter Your Encryption Key
export FIREBASE_SERVICE_ACCOUNT=/path/to/FireBaseKey.json
go run .

Backend: http://localhost:8080

3. Frontend setup

cd frontend
pnpm install
echo "VITE_API_URL=http://localhost:8080" > .env
pnpm dev

Frontend: http://localhost:5173

About

Secure encrypted notes app built with Go, React, and Firebase. Notes are encrypted server-side using AES-256-GCM

Resources

Stars

Watchers

Forks