| app | ||
| db | ||
| public | ||
| screenshots | ||
| test | ||
| .dockerignore | ||
| .gitignore | ||
| .rubocop.yml | ||
| app.rb | ||
| config.ru | ||
| Dockerfile | ||
| Gemfile | ||
| Gemfile.lock | ||
| LICENSE | ||
| Rakefile | ||
| README.md | ||
tu | du | di
tu|du|di 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. tu|du|di is designed to be intuitive and easy to use, providing a seamless experience for personal productivity.
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 tu|du|di, follow these steps:
- Clone the repository:
git clone https://github.com/chrisvel/tududi.git - Navigate to the project directory:
cd tududi - Install the required gems:
bundle install
SSL setup
-
Create and enter the directory:
mkdir certs -
Navigate to the certs directory:
cd certs -
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
-
Execute the migrations
rake db:migrate
Create your user
-
Open console
rake console -
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.17
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.
-
(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 64You will also have to set
TUDUDI_INTERNAL_SSL_ENABLED=truein the docker command below. -
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.17 -
Navigate to https://localhost:9292 and fill in your email and password.
-
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 tu|du|di are welcome. To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature/AmazingFeature). - Make your changes.
- Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a pull request.
License
This project is licensed under the MIT License.
Contact
If you have any questions or comments about tu|du|di, please feel free to open an issue or contact the developer directly.
README created by Chris Veleris for tu|du|di.

