A modern note-taking application built with Rails 8, featuring hierarchical folder organization, tagging, todos, and rich markdown support with image attachments.
- Rich Note Taking: Write notes in markdown with live preview and image attachments
- Hierarchical Folders: Organize notes in nested folders with unlimited depth
- Flexible Tagging: Tag notes and todos for quick filtering and organization
- Todo Management: Create and track tasks with tag-based organization
- Image Attachments: Upload and embed images directly in your notes
- Dual Authentication: Sign in with Google OAuth or traditional password authentication
- Multi-tenant Architecture: Secure, user-scoped data isolation
This project is developed using AI-driven development methodology. Initially built with Cursor AI, it now uses Claude Code for continued development.
AI agents work with structured planning documents to implement features:
- PRD Creation: AI generates Product Requirements Documents in
/tasks/prd-[feature].md - Task Generation: AI breaks down features into actionable tasks in
/tasks/tasks-[feature].md - Implementation: AI agents follow task lists for systematic, step-by-step development
All planning documents and task lists are stored in the /tasks/ directory for transparency and tracking.
See CLAUDE.md for detailed development conventions and patterns that guide AI agents.
- Ruby: 3.3.4
- Rails: 8.0.2
- Database: SQLite3
- Authentication: OmniAuth (Google OAuth) + bcrypt
- Hotwire: Turbo & Stimulus for reactive interfaces
- TailwindCSS: Utility-first CSS framework
- Importmap: JavaScript module management
- Markdown: Redcarpet for rendering
- RSpec: Behavior-driven testing framework
- FactoryBot: Test data generation
- RuboCop: Ruby style guide enforcement
- Brakeman: Security vulnerability scanning
- Active Storage: File uploads with image processing
- image_processing: Image transformations and variants
- Ruby 3.3.4
- Rails 8.0.2
- SQLite3
- Node.js (for asset pipeline)
git clone https://github.com/JPTGraczykowski/note-j.git
cd note-j# Install Ruby gems
bundle install# Create database
bin/rails db:create
# Run migrations
bin/rails db:migrateFor Google OAuth authentication, set up your OAuth credentials:
- Create a Google Cloud project and OAuth 2.0 credentials
- Create a
.envfile in the project root:cp .env.example .env
- Add your Google OAuth credentials to
.env:GOOGLE_CLIENT_ID=your_client_id_here GOOGLE_CLIENT_SECRET=your_client_secret_here
Start the development server with TailwindCSS watch mode:
bin/devThis runs both:
- Rails server on
http://localhost:3000 - TailwindCSS watcher for live CSS updates
Alternatively, run services separately:
# Terminal 1: Rails server
bin/rails server
# Terminal 2: TailwindCSS watcher
bin/rails tailwindcss:watchbundle exec rspec