help@rskworld.in +91 93305 39277
RSK World
  • Home
  • Development
    • Web Development
    • Mobile Apps
    • Software
    • Games
    • Project
  • Technologies
    • Data Science
    • AI Development
    • Cloud Development
    • Blockchain
    • Cyber Security
    • Dev Tools
    • Testing Tools
  • Blog
  • About
  • Contact

Theme Settings

Color Scheme
Display Options
Font Size
100%
Back to Project
RSK World
ruby-todo-list
RSK World
ruby-todo-list
Ruby Todo List - Task Management with User Authentication + Categories + Search + File Attachments + Email Notifications + Rails MVC + Modern Web Interface + API Integration + Educational Design
ruby-todo-list
  • app
  • bin
  • config
  • db
  • lib
  • log
  • public
  • test
  • tmp
  • vendor
  • .env.example1.2 KB
  • .gitignore1.6 KB
  • .ruby-version208 B
  • Dockerfile816 B
  • Gemfile2.7 KB
  • LICENSE1.4 KB
  • Procfile266 B
  • README.md9.2 KB
  • RELEASE_NOTES.md7.5 KB
  • Rakefile429 B
  • config.ru372 B
  • docker-compose.yml1.3 KB
  • index.html39.4 KB
  • package.json890 B
  • ruby-todo-list.png.html971 B
README.mdtest_imports.pyREADME.mdRELEASE_NOTES.md
README.md
Raw Download

README.md

# Ruby To-Do List Application

A complete task management application built with Ruby on Rails featuring task creation, priority management, completion tracking, and user authentication.

## Features

- ✅ **Task Management**: Create, edit, delete, and organize tasks
- ✅ **Priority Levels**: Set tasks as Low, Medium, or High priority
- ✅ **Completion Tracking**: Mark tasks as complete or pending
- ✅ **User Authentication**: Secure user registration and login with Devise
- ✅ **Database Integration**: PostgreSQL database with proper relationships
- ✅ **Responsive Design**: Bootstrap-based modern UI
- ✅ **Search Functionality**: Full-text search across task titles and descriptions
- ✅ **Task Categories**: Organize tasks with custom categories and colors
- ✅ **File Attachments**: Attach files, images, and documents to tasks
- ✅ **Email Notifications**: Automated reminders for due and overdue tasks
- ✅ **REST API**: JSON API endpoints for mobile app integration
- ✅ **Active Storage**: File upload and management system
- ✅ **Background Jobs**: Asynchronous task processing with Sidekiq
- ✅ **Docker Support**: Containerized deployment with Docker Compose
- ✅ **Rails Framework**: Built on Ruby on Rails 7.1

## Technologies Used

- **Ruby**: 3.3.10
- **Ruby on Rails**: 7.1.3
- **Database**: PostgreSQL
- **Authentication**: Devise
- **Search**: pg_search (PostgreSQL full-text search)
- **File Storage**: Active Storage
- **Background Jobs**: Sidekiq with Redis
- **Email**: Action Mailer
- **API**: RESTful JSON API
- **Frontend**: Bootstrap 5, HTML5, CSS3, JavaScript, jQuery
- **Deployment**: Docker, Docker Compose, Heroku-ready
- **Testing**: Rails testing framework

## Getting Started

### Prerequisites

- Ruby 3.3.10
- Rails 7.1.3
- PostgreSQL

### Installation

1. **Clone the repository**
```bash
git clone <repository-url>
cd ruby-todo-list
```

2. **Install dependencies**
```bash
bundle install
```

3. **Database setup**
```bash
# Create the database
rails db:create

# Run migrations
rails db:migrate
```

4. **Start the server**
```bash
rails server
```

5. **Visit the application**
Open your browser and go to `http://localhost:3000`

## Usage

### User Registration
- Click "Sign Up" to create a new account
- Fill in your email and password
- Confirm your password

### Task Management
- **Create Tasks**: Click "New Task" to add a new task
- **Set Priority**: Choose Low, Medium, or High priority
- **Due Dates**: Optionally set due dates for tasks
- **Complete Tasks**: Click the check button to mark tasks as complete
- **Edit Tasks**: Click the edit button to modify task details
- **Delete Tasks**: Click the delete button to remove tasks

### Navigation
- **All Tasks**: View both pending and completed tasks
- **Pending**: View only pending tasks
- **Completed**: View only completed tasks
- **Categories**: Manage task categories and organization

### Advanced Features

#### Search
- Search tasks by title and description
- Real-time search results
- PostgreSQL full-text search capabilities

#### Categories
- Create custom categories with colors
- Organize tasks by category
- Default categories created automatically for new users
- Visual category indicators

#### File Attachments
- Attach images, documents, and files to tasks
- Active Storage integration
- Secure file management
- File type validation

#### Email Notifications
Run notification tasks manually:
```bash
# Send all notifications
rails notifications:send_task_notifications

# Send overdue notifications only
rails notifications:send_overdue_notifications

# Send due today notifications only
rails notifications:send_due_today_notifications
```

#### API Endpoints
Access the REST API at `/api/v1/`:

**Tasks API:**
- `GET /api/v1/tasks` - List all tasks
- `GET /api/v1/tasks/:id` - Get specific task
- `POST /api/v1/tasks` - Create new task
- `PATCH /api/v1/tasks/:id` - Update task
- `DELETE /api/v1/tasks/:id` - Delete task
- `PATCH /api/v1/tasks/:id/toggle_complete` - Toggle completion
- `GET /api/v1/tasks/completed` - List completed tasks
- `GET /api/v1/tasks/pending` - List pending tasks

**Categories API:**
- `GET /api/v1/categories` - List all categories
- `GET /api/v1/categories/:id` - Get specific category

## Project Structure

```
ruby-todo-list/
├── app/
│ ├── assets/
│ ├── controllers/
│ ├── models/
│ ├── views/
│ └── helpers/
├── config/
│ ├── environments/
│ ├── initializers/
│ └── routes.rb
├── db/
│ ├── migrate/
│ └── schema.rb
├── lib/
├── log/
├── public/
├── test/
├── tmp/
├── vendor/
├── Gemfile
├── Gemfile.lock
├── README.md
└── config.ru
```

## Database Schema

### Users Table
- `id`: Primary key
- `email`: User email (unique)
- `encrypted_password`: Hashed password
- `reset_password_token`: Password reset token
- `reset_password_sent_at`: Password reset timestamp
- `remember_created_at`: Remember me timestamp
- `created_at`: Record creation timestamp
- `updated_at`: Record update timestamp

### Tasks Table
- `id`: Primary key
- `title`: Task title (required)
- `description`: Task description (optional)
- `priority`: Task priority (1=Low, 2=Medium, 3=High)
- `completed`: Completion status (boolean, default: false)
- `completed_at`: Completion timestamp
- `due_date`: Task due date (optional)
- `user_id`: Foreign key to users table
- `created_at`: Record creation timestamp
- `updated_at`: Record update timestamp

## API Endpoints

- `GET /`: Home page (redirects to tasks)
- `GET /tasks`: List all user tasks
- `GET /tasks/new`: New task form
- `POST /tasks`: Create new task
- `GET /tasks/:id`: Show task details
- `GET /tasks/:id/edit`: Edit task form
- `PATCH /tasks/:id`: Update task
- `DELETE /tasks/:id`: Delete task
- `PATCH /tasks/:id/toggle_complete`: Toggle task completion
- `GET /tasks/completed`: List completed tasks
- `GET /tasks/pending`: List pending tasks

## Development

### Running Tests
```bash
rails test
```

### Code Style
This project follows Ruby on Rails conventions and best practices.

### Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if necessary
5. Submit a pull request

## Deployment

### Docker Deployment
1. **Using Docker Compose:**
```bash
# Build and start all services
docker-compose up --build

# Run in background
docker-compose up -d --build

# Run database migrations
docker-compose exec app rails db:migrate

# Create admin user
docker-compose exec app rails console
```

2. **Access the application:**
- Web App: http://localhost:3000
- PostgreSQL: localhost:5432
- Redis: localhost:6379

### Heroku Deployment
1. **Install Heroku CLI**
2. **Login to Heroku:**
```bash
heroku login
```

3. **Create Heroku app:**
```bash
heroku create your-app-name
```

4. **Add PostgreSQL and Redis addons:**
```bash
heroku addons:create heroku-postgresql:hobby-dev
heroku addons:create heroku-redis:hobby-dev
```

5. **Deploy:**
```bash
git push heroku main
```

6. **Run migrations:**
```bash
heroku run rails db:migrate
```

### Manual Production Setup
1. Set up PostgreSQL database
2. Configure environment variables
3. Run database migrations
4. Precompile assets
5. Start the Rails server

### Environment Variables
```bash
RAILS_ENV=production
RAILS_MASTER_KEY=your_master_key
DATABASE_URL=postgresql://user:password@host:port/database
REDIS_URL=redis://host:port/db
SMTP_USERNAME=your_smtp_username
SMTP_PASSWORD=your_smtp_password
```

## License

This project is licensed under the MIT License.

## Author Information

**Created by:** Molla Samser
- **Email:** help@rskworld.in
- **Support:** support@rskworld.in
- **Phone:** +91 93305 39277
- **Address:** Nutanhat, Mongolkote, Purba Burdwan, West Bengal, India, 713147
- **Year:** 2026

## Support

For support, email help@rskworld.in or visit https://rskworld.in/contact.php

## Features Overview

### Task Creation and Management
- Intuitive web interface for creating tasks
- Rich text descriptions
- Priority level assignment
- Due date scheduling

### Priority Management
- Three priority levels: Low, Medium, High
- Color-coded priority indicators
- Priority-based sorting and filtering

### Completion Tracking
- One-click task completion
- Completion timestamp tracking
- Separate views for pending and completed tasks
- Progress statistics dashboard

### User Authentication
- Secure user registration and login
- Password reset functionality
- Remember me option
- Profile management

### Database Integration
- PostgreSQL database backend
- Proper data relationships
- Database indexing for performance
- Data migration support

### Rails Framework Features
- MVC architecture
- RESTful routing
- Active Record ORM
- Built-in security features
- Asset pipeline
- Internationalization ready
RELEASE_NOTES.md
Raw Download

RELEASE_NOTES.md

# 🚀 Ruby To-Do List Application - Release v1.0.0

## 📋 Release Summary

**Version**: 1.0.0
**Date**: January 23, 2026
**Status**: ✅ Production Ready

A complete, enterprise-grade task management application built with Ruby on Rails featuring advanced functionality, professional UI/UX, and comprehensive API support.

---

## 🎯 Key Features

### ✅ Core Functionality
- **Task Management**: Complete CRUD operations (Create, Read, Update, Delete)
- **Priority System**: Three priority levels (Low, Medium, High) with visual indicators
- **Completion Tracking**: Mark tasks as complete with automatic timestamping
- **User Authentication**: Secure login/registration with Devise
- **Database Integration**: PostgreSQL with proper relationships and indexing

### 🚀 Advanced Features
- **Full-Text Search**: PostgreSQL-powered search across titles and descriptions
- **Task Categories**: Custom categories with color coding and statistics
- **File Attachments**: Active Storage integration for file uploads
- **Email Notifications**: Automated reminders for due/overdue tasks
- **REST API**: Complete JSON API for mobile app integration
- **Background Jobs**: Sidekiq-powered asynchronous processing
- **Docker Support**: Containerized deployment with docker-compose

### 🎨 User Experience
- **Responsive Design**: Mobile-first Bootstrap 5 interface
- **Professional UI**: Modern gradients, animations, and transitions
- **Statistics Dashboard**: Real-time task metrics and progress bars
- **Interactive Elements**: Hover effects, loading states, smooth animations
- **Accessibility**: ARIA labels, keyboard navigation, screen reader support

---

## 📊 Project Statistics

- **📁 Total Files**: 200+ files
- **🏗️ Lines of Code**: 10,000+ lines
- **🎯 Models**: 3 (User, Task, Category)
- **🎮 Controllers**: 5 (including API controllers)
- **📄 Views**: 20+ ERB templates
- **🧪 Tests**: Complete test suite with fixtures
- **📦 Dependencies**: 20+ Ruby gems

---

## 🛠️ Technical Stack

### Backend
- **Ruby**: 3.3.10
- **Rails**: 7.1.3
- **Database**: PostgreSQL 15
- **Authentication**: Devise
- **Search**: pg_search
- **File Storage**: Active Storage
- **Background Jobs**: Sidekiq + Redis
- **Email**: Action Mailer

### Frontend
- **CSS Framework**: Bootstrap 5.3
- **JavaScript**: jQuery + Custom JS
- **Icons**: Font Awesome 6
- **Typography**: Inter Font Family
- **Responsive**: Mobile-first design

### Deployment
- **Web Server**: Puma
- **Container**: Docker + Docker Compose
- **Platform**: Heroku-ready
- **Process**: Procfile included

### Development
- **Testing**: Minitest + Capybara + Selenium
- **Code Quality**: RuboCop (recommended)
- **Documentation**: Comprehensive README
- **Version Control**: Git with detailed history

---

## 📁 Project Structure

```
ruby-todo-list/
├── 📂 app/ # Application code
│ ├── 📂 controllers/ # MVC controllers
│ ├── 📂 models/ # Data models
│ ├── 📂 views/ # ERB templates
│ ├── 📂 helpers/ # View helpers
│ ├── 📂 mailers/ # Email functionality
│ ├── 📂 jobs/ # Background jobs
│ ├── 📂 assets/ # Static assets
│ └── 📂 channels/ # Action Cable (prepared)
├── 📂 config/ # Configuration files
├── 📂 db/ # Database migrations & schema
├── 📂 lib/ # Library code
├── 📂 test/ # Test suite
├── 📂 public/ # Static files
├── 📂 tmp/ # Temporary files
├── 📂 vendor/ # Third-party code
├── 📄 Dockerfile # Docker configuration
├── 📄 docker-compose.yml # Docker services
├── 📄 Gemfile & Gemfile.lock # Dependencies
├── 📄 README.md # Documentation
├── 📄 LICENSE # MIT License
└── 📄 index.html # Landing page
```

---

## 🚀 Getting Started

### Prerequisites
- Ruby 3.3.10
- Rails 7.1.3
- PostgreSQL 15
- Redis (for background jobs)

### Quick Start

#### Option 1: Docker (Recommended)
```bash
# Clone repository
git clone https://github.com/rskworld/ruby-todo-list.git
cd ruby-todo-list

# Start with Docker
docker-compose up --build

# Setup database
docker-compose exec app rails db:migrate

# Visit http://localhost:3000
```

#### Option 2: Manual Setup
```bash
# Install dependencies
bundle install
npm install

# Setup database
rails db:create
rails db:migrate

# Start server
rails server
```

### Environment Variables
```bash
# Copy example file
cp .env.example .env

# Configure your settings
RAILS_ENV=development
DATABASE_URL=postgresql://user:password@localhost/ruby_todo_list
REDIS_URL=redis://localhost:6379/0
```

---

## 📚 API Documentation

### Authentication
All API endpoints require authentication. Include the token in headers:
```
Authorization: Bearer <user_token>
```

### Endpoints

#### Tasks API
- `GET /api/v1/tasks` - List all tasks
- `POST /api/v1/tasks` - Create task
- `GET /api/v1/tasks/:id` - Get task details
- `PATCH /api/v1/tasks/:id` - Update task
- `DELETE /api/v1/tasks/:id` - Delete task
- `PATCH /api/v1/tasks/:id/toggle_complete` - Toggle completion

#### Categories API
- `GET /api/v1/categories` - List all categories
- `GET /api/v1/categories/:id` - Get category details

### Response Format
```json
{
"success": true,
"data": {
// Response data
}
}
```

---

## 🧪 Testing

Run the comprehensive test suite:
```bash
# Run all tests
rails test

# Run specific test
rails test test/models/task_test.rb

# Run with coverage (if configured)
rails test
```

---

## 🚀 Deployment

### Heroku Deployment
1. Create Heroku app
2. Add PostgreSQL and Redis add-ons
3. Push to Heroku
4. Run migrations

### Docker Deployment
1. Build and run containers
2. Configure environment variables
3. Setup reverse proxy (nginx)

### Manual Production
1. Configure production environment
2. Setup web server (nginx + puma)
3. Configure SSL certificates
4. Setup monitoring and logging

---

## 🤝 Contributing

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

---

## 📞 Support

- **Author**: Molla Samser
- **Email**: help@rskworld.in
- **Phone**: +91 93305 39277
- **Address**: Nutanhat, Mongolkote, Purba Burdwan, West Bengal, India, 713147
- **Year**: 2026

For support, questions, or contributions, please contact: help@rskworld.in

---

## 📜 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

---

## 🙏 Acknowledgments

- Ruby on Rails framework
- Bootstrap 5 for UI components
- Font Awesome for icons
- PostgreSQL for database
- Redis for caching
- All contributors and the open-source community

---

**🎉 Thank you for choosing Ruby To-Do List Application!**

*Built with ❤️ by Molla Samser*
*Released: January 23, 2026*
🚀 Support RSK World

Subscribe to our YouTube channel for latest tutorials & updates!



Click subscribe & support our work ❤️

About RSK World

Founded by Molla Samser, with Designer & Tester Rima Khatun, RSK World is your one-stop destination for free programming resources, source code, and development tools.

Founder: Molla Samser
Designer & Tester: Rima Khatun

Development

  • Game Development
  • Web Development
  • Mobile Development
  • AI Development
  • Development Tools

Legal

  • Terms & Conditions
  • Privacy Policy
  • Disclaimer

Contact Info

Nutanhat, Mongolkote
Purba Burdwan, West Bengal
India, 713147

+91 93305 39277

hello@rskworld.in
support@rskworld.in

© 2026 RSK World. All rights reserved.

Content used for educational purposes only. View Disclaimer