A calm, open system for organizing life and work. Tasks, projects, notes, areas, and smart workflows - self-hosted or hosted. https://tududi.com/
Find a file
2024-11-05 15:15:46 +02:00
app Fix logout and badges 2024-11-05 15:15:46 +02:00
db Move to React 2024-10-25 21:03:43 +03:00
public Fix logout and badges 2024-11-05 15:15:46 +02:00
screenshots Update README 2024-09-13 11:26:30 +03:00
test Basic tests scaffold 2023-11-13 13:34:38 +02:00
.babelrc Move to React 2024-10-25 21:03:43 +03:00
.dockerignore Update version 2023-11-15 14:37:27 +02:00
.gitignore Move to React 2024-10-25 21:03:43 +03:00
.rubocop.yml Add rubocop conf 2023-11-28 12:13:39 +02:00
app.rb Remove obsolete comments 2024-10-27 11:14:20 +02:00
babel.config.js Move to React 2024-10-25 21:03:43 +03:00
config.ru Initial commit 2023-11-13 11:47:56 +02:00
console.rb Fix projects layout 2024-09-06 21:53:21 +03:00
create_migration.sh Fix projects layout 2024-09-06 21:53:21 +03:00
Dockerfile Cleanup old code 2024-10-26 00:57:49 +03:00
eslint.config.mjs Setup tsc compilation and eslint 2024-10-28 18:21:53 +02:00
Gemfile Move to React 2024-10-25 21:03:43 +03:00
Gemfile.lock Move to React 2024-10-25 21:03:43 +03:00
LICENSE Initial commit 2023-11-13 11:47:56 +02:00
package-lock.json Setup tsc compilation and eslint 2024-10-28 18:21:53 +02:00
package.json Setup tsc compilation and eslint 2024-10-28 18:21:53 +02:00
postcss.config.js Move to React 2024-10-25 21:03:43 +03:00
Rakefile Initial commit 2023-11-13 11:47:56 +02:00
README.md Move to React 2024-10-25 21:03:43 +03:00
run.sh Add tweaks 2024-03-03 13:39:00 +02:00
tailwind.config.js Remove obsolete comments 2024-10-27 11:14:20 +02:00
tsconfig.json Move to React 2024-10-25 21:03:43 +03:00
webpack.config.js Move to React 2024-10-25 21:03:43 +03:00

tududi

tududi is a task and project management web application built with Sinatra. It allows users to efficiently manage their tasks and projects, categorize them into different areas, and track due dates. tududi is designed to be intuitive and easy to use, providing a seamless experience for personal productivity.

image image

How It Works

This app allows users to manage their tasks, projects, areas, notes, and tags in an organized way. A user can create tasks, projects, areas (to group projects), notes, and tags. Each task can be associated with a project, and both tasks and notes can be tagged for better organization. Projects can belong to areas, and can also have multiple notes and tags. This structure helps users categorize and track their work efficiently, whether theyre managing individual tasks, larger projects, or keeping detailed notes.

Features

  • Task Management: Create, update, and delete tasks. Mark tasks as completed and view them by different filters (Today, Upcoming, Someday). Order them by Name, Due date, Date created or Priority.
  • Quick Notes: Create, update, delete or assign text notes to projects.
  • Tags: Create tags for tasks and notes.
  • Project Tracking: Organize tasks into projects. Each project can contain multiple tasks and/or multiple notes.
  • Area Categorization: Group projects into areas for better organization and focus.
  • Due Date Tracking: Set due dates for tasks and view them based on due date categories.

Roadmap (planned or in progress)

  • Responsive Design (in progress): Accessible from various devices, ensuring a consistent experience across desktops, tablets, and mobile phones.

Getting Started

Prerequisites

Before you begin, ensure you have met the following requirements:

  • Ruby (version 3.2.2 or higher)
  • Sinatra
  • SQLite3
  • Puma

Installation

To install tududi, follow these steps:

  1. Clone the repository:
    git clone https://github.com/chrisvel/tududi.git
    
  2. Navigate to the project directory:
    cd tududi
    
  3. Install the required gems:
    bundle install
    

SSL setup

  1. Create and enter the directory:

    mkdir certs
    
  2. Navigate to the certs directory:

    cd certs
    
  3. Create the key and cert:

    openssl genrsa -out server.key 2048
    openssl req -new -x509 -key server.key -out server.crt -days 365
    

DB setup

  1. Execute the migrations

    rake db:migrate 
    

Create your user

  1. Open console

    rake console
    
  2. Add the user

    User.create(email: "myemail@somewhere.com", password: "awes0meHax0Rp4ssword")
    

Usage

To start the application, run the following command in your terminal:

puma -C app/config/puma.rb

Docker

Pull the latest image:

docker pull chrisvel/tududi:0.20

In order to start the docker container you need 4 enviromental variables:

TUDUDI_USER_EMAIL
TUDUDI_USER_PASSWORD
TUDUDI_SESSION_SECRET
TUDUDI_INTERNAL_SSL_ENABLED

PLEASE NOTE: I am generating a new SSL certificate inside the Dockerfile. There will be an option to create and link an externally generated one in the future - at this stage I am doing this for simplicity.

  1. (optional - only If you want to use the pre-generated SSL Certificate) Create a random session secret and copy the hash to use it as a TUDUDI_SESSION_SECRET:

    openssl rand -hex 64
    

    You will also have to set TUDUDI_INTERNAL_SSL_ENABLED=true in the docker command below.

  2. Run the docker command with your produced hash at the previous step:

    docker run \
    -e TUDUDI_USER_EMAIL=myemail@example.com \
    -e TUDUDI_USER_PASSWORD=mysecurepassword \
    -e TUDUDI_SESSION_SECRET=3337c138d17ac7acefa412e5db0d7ef6540905b198cc28c5bf0d11e48807a71bdfe48d82ed0a0a6eb667c937cbdd1db3e1e6073b3148bff37f73cc6398a39671 \
    -e TUDUDI_INTERNAL_SSL_ENABLED=false \
    -v ~/tududi_db:/usr/src/app/tududi_db \
    -p 9292:9292 \
    -d chrisvel/tududi:0.20
    
  3. Navigate to https://localhost:9292 and fill in your email and password.

  4. Enjoy

Testing

To run tests:

bundle exec ruby -Itest test/test_app.rb

Open your browser and navigate to http://localhost:9292 to access the application and login with the email and the password you created.

Contributing

Contributions to tududi are welcome. To contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/AmazingFeature).
  3. Make your changes.
  4. Commit your changes (git commit -m 'Add some AmazingFeature').
  5. Push to the branch (git push origin feature/AmazingFeature).
  6. Open a pull request.

License

This project is licensed under the MIT License.

Contact

If you have any questions or comments about tududi, please feel free to open an issue or contact the developer directly.


README created by Chris Veleris for tududi.