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
  • 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.mdpackage.json
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
package.json
Raw Download
Find: Go to:
{
  "name": "ruby-todo-list",
  "private": true,
  "description": "Ruby To-Do List Application - A complete task management application built with Ruby on Rails",
  "author": {
    "name": "Molla Samser",
    "email": "help@rskworld.in",
    "phone": "+91 93305 39277",
    "address": "Nutanhat, Mongolkote, Purba Burdwan, West Bengal, India, 713147"
  },
  "year": "2026",
  "dependencies": {
    "@hotwired/stimulus": "^3.2.2",
    "@hotwired/turbo-rails": "^8.0.4",
    "@popperjs/core": "^2.11.8",
    "bootstrap": "^5.3.3",
    "bootstrap-icons": "^1.11.3",
    "jquery": "^3.7.1"
  },
  "scripts": {
    "build": "esbuild app/javascript/*.* --bundle --sourcemap --outdir=app/assets/builds --public-path=/assets",
    "build:css": "sass ./app/assets/stylesheets/application.scss ./app/assets/builds/application.css --no-source-map --load-path=node_modules"
  }
}
24 lines•890 B
json

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