Giter Site home page Giter Site logo

thintimer's Introduction

ThinTimer

Logo or banner image

Table of Contents


Overview

In 2020, Richard White shutdown SlimTimer. At the time, there was chatter that a user would replicate SlimTimer and host it, alas. On September 8th, 2023, I started this project. Using ChatGPT and Richard White's SlimTimer demo, I created ThinTimer, a blantant attempt at replicating SlimTimer.


Features

  • User Authentication: Log in securely to manage your tasks. Update your username, passsword, and delete your account.
  • Task Management: Create, edit, and delete tasks.
  • Time Tracking: Start and stop timers for individual task entries.
  • Reports: Generate time reports for any given period (XLSX).

Screenshots

Here's what the application looks like in action:

Logging in Logging in

Create a Task Creating a task

Edit a Task Editing a task

Create a Task Entry Creating a task entry

Open the Timer Timer window

Running a Report Running a report

Delete You Account Deleting your account


Getting Started

Prerequisites

  • Python 3.9.18
  • Django 4.1
  • Django Rest Framework 3.14.0

Installation

  1. Clone this repository: git clone https://github.com/gfbarbieri/thintimer.git
  2. Navigate to the project folder and install dependencies: pip install -r requirements.txt
  3. Run migrations: python manage.py migrate
  4. Start the development server: python manage.py runserver

Usage

After setting up the development environment, visit http://localhost:8000/ to start using the app.

  • Creating a Task: Navigate to the 'Manage Tasks' tab and click on 'Create New Task'.
  • Starting a Timer: Click on 'Open Timer' an select a task to begin tracking.
  • Generating Reports: Navigate to the 'Run Reports' tab, specify a date range, export to Excel.

Running the Tests

To execute all tests for all apps:

python manage.py test

To execute tests for a specific app:

python manage.py test <app_name>.tests

To execute a specific test class for a specific app run:

python manage.py test <app_name>.tests.<class_name>

To execute a specific test method in a specific class for a specific app run:

python manage.py test <app_name>.tests.<class_name>.<method_name>

Contributing

See the CONTRIBUTING.md file for guidelines on how to contribute to this project.


Roadmap

Testing

  • Create tests for CRUD tasks.
  • Create tests for CRUD entries.
  • Create tests for report generation.

Documentation

  • Create documentation page.
  • Create comments for user_auth/tests.py, main_app/tests.py, main_app/serializers.py, main_app/models.py.
  • Find the right license to use for the project.
  • Get out from under all this JavaScript, I mean Jesus Christ. Or improve the code base, I would take either.

Features

  • Create privacy policy page to ensure users about data storage, access, and usage.
  • Create about page to explain the project, funding sources, and maybe something about me and any other future contributors, should they ever exist. Though nowadays, that's what GitHub is for?
  • Create more messages, warnings, and other helpful responses on HTML pages to improve user experience.
  • Allow users to create new task from the timer or from the edit entry page.
  • Implement email login to replace reliance on Django usernames to improve user experience.
  • Low priority: CSS and page styling generally. Let someone else design/style the pages.
  • Low priority: Develop a public API to allow secure access to ThinTimer user data programatically. I mean why not? In fact, what if the main product is the backend plus API?

License

This project is licensed under the MIT License. See the LICENSE file for details.


Acknowledgments

  • Richard White of SlimTimer for the original application and inspiration.
  • ChatGPT, which built the application, as I had no experience with web development when starting the project.
  • Django framework for backend support.
  • Heroku for hosting support.

Contact

For more information or queries, contact [email protected].

thintimer's People

Contributors

gfbarbieri avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.