https://github.com/lauhemahfus/gonote
A modern, fast, and AI-powered note-taking application built with Go, Gin, PostgreSQL, Redis, and Google Gemini AI.
https://github.com/lauhemahfus/gonote
gemini-api gin go jwt lazy-loading postgresql redis
Last synced: 2 months ago
JSON representation
A modern, fast, and AI-powered note-taking application built with Go, Gin, PostgreSQL, Redis, and Google Gemini AI.
- Host: GitHub
- URL: https://github.com/lauhemahfus/gonote
- Owner: lauhemahfus
- Created: 2025-10-04T16:57:27.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2025-10-05T14:30:16.000Z (9 months ago)
- Last Synced: 2025-10-05T16:18:03.284Z (9 months ago)
- Topics: gemini-api, gin, go, jwt, lazy-loading, postgresql, redis
- Language: Go
- Homepage:
- Size: 28.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GoNote - Personal Note Taking Application
A modern, fast, and AI-powered note-taking application built with Go, Gin, PostgreSQL, Redis, and Google Gemini AI. Features a beautiful blue pastel UI theme and follows clean architecture principles.
## Features
- **User Authentication** - Secure JWT-based authentication system
- **CRUD Operations** - Create, Read, Update, and Delete notes effortlessly
- **Redis Caching** - Lightning-fast note retrieval with intelligent caching
- **AI-Powered Summaries** - Generate instant summaries using Google Gemini 2.0 Flash
- **Lazy Loading** - Efficient pagination for handling large note collections
## Installation & Setup
### 1. Clone the Repository
```bash
git clone https://github.com/lauhemahfus/gonote.git
cd gonote
```
### 2. Set Up PostgreSQL Database
```bash
# Create database
createdb gonote
# Run migrations
psql -d gonote -f backend/migrations/001_init.sql
```
### 3. Set Up Redis
```bash
# Start Redis server
redis-server
```
### 4. Configure Environment Variables
```bash
# Copy the example environment file
cp .env.example .env
# Edit .env with your credentials
```
### 5. Install Go Dependencies
```bash
cd backend
# Download dependencies
go mod download
# Tidy up modules
go mod tidy
```
**Or install manually:**
```bash
go get github.com/gin-gonic/gin@v1.9.1
go get github.com/gin-contrib/cors@v1.4.0
go get github.com/go-redis/redis/v8@v8.11.5
go get github.com/golang-jwt/jwt/v4@v4.5.0
go get github.com/joho/godotenv@v1.5.1
go get github.com/lib/pq@v1.10.9
go get golang.org/x/crypto@v0.14.0
```
### 6. Run the Application
```bash
go run cmd/server/main.go
```
You should see:
```
Server starting on http://localhost:8080
```
### 7. Access the Application
Open your browser and visit:
```
http://localhost:8080
```
## Screenshots
