| app | ||
| db | ||
| public | ||
| screenshots | ||
| test | ||
| .babelrc | ||
| .dockerignore | ||
| .gitignore | ||
| .rubocop.yml | ||
| app.rb | ||
| babel.config.js | ||
| config.ru | ||
| console.rb | ||
| create_migration.sh | ||
| Dockerfile | ||
| eslint.config.mjs | ||
| Gemfile | ||
| Gemfile.lock | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.js | ||
| Rakefile | ||
| README.md | ||
| run.sh | ||
| tailwind.config.js | ||
| tsconfig.json | ||
| webpack.config.js | ||
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.
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 they’re 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:
- 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.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.
-
(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.20 -
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 tududi 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 tududi, please feel free to open an issue or contact the developer directly.
README created by Chris Veleris for tududi.

