A clone of the Todoist web-app written in Java + Spring (backend) and Typescript + Angular (frontend).
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
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
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
- 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