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.
- 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.
Before you begin, ensure you have met the following requirements:
- Ruby (version 3.2.2 or higher)
- Sinatra
- SQLite3
- Puma
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
-
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
-
Execute the migrations
rake db:migrate
-
Open console
rake console
-
Add the user
User.create(email: "[email protected]", password: "awes0meHax0Rp4ssword")
To start the application, run the following command in your terminal:
puma -C app/config/puma.rb
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.
-
(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. -
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
-
Navigate to https://localhost:9292 and fill in your email and password.
-
Enjoy
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.
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.
This project is licensed under the MIT License.
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
.