Skip to content

xpakx/ladder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ladder

General info

A clone of the Todoist web-app written in Java + Spring (backend) and Typescript + Angular (frontend).

gif

Table of contents

Technologies

Project is created with:

  • Java 11
  • Spring Boot 2.51
  • Typescript
  • Angular
  • PostgreSQL

Additional libraries (backend):

  • Lombok
  • Jjwt library for JWT tokens
  • RestAssured for testing

Additional libraries (frontend):

  • ngx-markdown
  • ngx-drag-drop

Setup

Local Setup

In order to run project locally you need to clone this repository:

$ git clone https://github.com/xpakx/ladder.git

Navigate to backend folder in the command line and start server:

$ mvn spring-boot:run

Optionally, start notification server:

$ mvn spring-boot:run

Finally, navigate to frontend folder, build and run frontend:

$ npm i
$ ng serve

Docker

In order to run project with Docker you need to clone this repository and build project with Docker Compose:

$ git clone https://github.com/xpakx/ladder.git
$ cd ladder
$ docker-compose up --build -d

To stop:

$ docker-compose stop

Features/planned features

  • Projects
    • Displaying project list
    • Creating projects
    • Editing projects
    • Deleting projects
    • Adding projects above/below another project
    • Nested projects
    • Collapsing projects
    • Re-ordering projects with drag'n'drop
    • Viewing projects' tasks
    • Duplicating projects
    • Archiving projects
  • Tasks
    • Creating tasks
    • Editing tasks
    • Deleting tasks
    • Adding tasks above/below another task
    • Nested tasks
    • Collapsing tasks
    • Re-ordering tasks with drag'n'drop
    • Changing tasks' project
    • Due dates
    • Priorities
    • Duplicating tasks
    • Detailed task view
  • Labels
    • Displaying label list
    • Creating labels
    • Editing labels
    • Deleting labels
    • Adding labels above/below another label
    • Re-ordering labels with drag'n'drop
    • Viewing label' tasks
    • Assigning labels to tasks
  • Synchronization
    • Synchronizing data between clients
    • Offline changes
  • Filters
    • Search
    • Save searches as filters
    • Displaying filter list
    • Editing filters
    • Deleting filters
    • Adding filters above/below another filter
    • Re-ordering filters with drag'n'drop
    • Viewing filters' search results
  • Habits
    • Creating habits
    • Editing habits
    • Deleting habits
    • Adding habits above/below another habits
  • Shared projects
    • Adding collaborators to project
    • Invitations
    • Different permissions for viewing, completing and editing collaborative tasks
    • Assigning tasks to collaborator
  • Keyboard shortcuts
  • Enhancement
    • Gamification
    • Tasks' stats
    • Enhance inline task editor with NLP
  • UI
    • Themes
    • Sections for tasks