Git Product home page Git Product logo

aufgabenjager's Introduction

Aufgabenjager

Aufgabenjäger - the task hunter

About

Aufgabenjäger is meant to be a fullstack solution for tracking tasks without using a cloud service.

This project was made using this repo as a starting point. It deviates from the source in that it uses Typescript and newer versions of Vite and Docker.

Stack

  • React
  • Express JS
  • PostgreSQL
  • Docker

Features

  • Create multiple boards
  • Each board supports multiple lists and tasks
  • Tasks and lists can be rearragned through drag and drop
  • Store data locally (through docker mount volume)
  • Single port (orchestrated through nginx)

Previews

New Board

new_board

Edit Board Title

edit_board_title

Delete Board

delete_board

New List, Edit Title, and Delete List

new_list_edit_title_and_delete_list

Various Task Features

various_task_features

Todo

  • Add tests -- tests were not provided because I wanted the freedom to develop the api and frontend without having to update tests. Now that the project is more or less complete, tests should be added to prevent future changes from breaking existing functionality
  • Add information on how to update the password for postgres db

Dependencies

The application was developed with the following dependencies and versions

  • Node: 19.8.1
  • NPM: 9.5.1
  • Docker
    • Engine: 25.0.3
    • Compose: 2.24.5-desktop.1

Building Dependencies

Frontend

cd react && npm install

Backend

cd node && npm install

Local Development

When developing a feature for the application, it is easy to test changes with hotreload enabled. The docker-compose-dev.yaml file executes those commands and persists the database files to a ./data directory (see Docker Mount Volume for more details).

Build and Run Docker Containers

docker-compose -f docker-compose-dev.yaml up --build

Running the Application

Docker Mount Volume

The postgres database stores the data within the container, but this means the data is temporary (find a better word). To avoid this, the docker-compose.yaml file defines a volume mapping ./data:/var/lib/postgresql/data.

The current mapping can remain as the .gitignore file should exclude it from commits, but a data directory will need to be created. The data director is at the top level of the project for development reasons.

Therefore, if you plan to run the application as a tool, it is recommended that the data folder be stored outside of the project.

Postgres Security

For development purposes, the postgres username and password are in plaintext and the default values. They can be found in the docker-compose.yaml file's backend and db environment sections.

Although this application is meant to be used without a cloud service, if it is deployed to an exposed port, it is recommended to change the database credentials before running the application.

Build the Docker Containers

docker-compose build

Run the Docker Containers

docker-compose up -d

aufgabenjager's People

Contributors

mjpoulsen 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.