Skip to content
/ tududi Public
forked from chrisvel/tududi

tududi is a task and project management web application built with Sinatra

License

Notifications You must be signed in to change notification settings

jcwilk/tududi

 
 

Repository files navigation

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

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.
  • 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: "[email protected]", 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 3 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 [email protected] \
    -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.

About

tududi is a task and project management web application built with Sinatra

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 47.5%
  • Ruby 33.7%
  • JavaScript 12.2%
  • CSS 5.6%
  • Other 1.0%