|
1 | | -<a href="https://github.com/its-me-abhishek/ccsync"> |
2 | | - <img src="https://github.com/its-me-abhishek/ccsync/blob/main/frontend/src/assets/logo.jpg" alt="CCSync"> |
3 | | -</a> |
4 | | - |
5 | | -</h1> |
6 | | -<h4 align="center">Web interface + Sync server for Taskwarrior 3.0 and higher</h4> |
7 | | -<p align="center"> |
8 | | - <a href="https://github.com/its-me-abhishek/ccsync/commits/main"> |
9 | | - <img src="https://img.shields.io/github/last-commit/its-me-abhishek/ccsync.svg?style=flat-square&logo=github&logoColor=white" |
10 | | - alt="GitHub last commit"></a> |
| 1 | +<div align="center"> |
| 2 | + <a href="https://github.com/its-me-abhishek/ccsync"> |
| 3 | + <img src="https://github.com/its-me-abhishek/ccsync/blob/main/frontend/src/assets/logo.jpg" alt="CCSync Logo"/> |
| 4 | + </a> |
| 5 | + <h3>Web Interface + Sync Server for Taskwarrior 3.0 and Higher</h3> |
| 6 | + |
| 7 | + <p> |
| 8 | + A self-hosted solution for syncing and managing your tasks anywhere, anytime. |
| 9 | + </p> |
| 10 | + |
| 11 | + <p> |
| 12 | + <a href="https://github.com/its-me-abhishek/ccsync/stargazers"> |
| 13 | + <img src="https://img.shields.io/github/stars/its-me-abhishek/ccsync?logo=github&color=gold&style=for-the-badge" alt="Stars" /> |
| 14 | + </a> |
| 15 | + <a href="https://github.com/its-me-abhishek/ccsync/forks"> |
| 16 | + <img src="https://img.shields.io/github/forks/its-me-abhishek/ccsync?logo=github&color=orange&style=for-the-badge" alt="Forks" /> |
| 17 | + </a> |
| 18 | + <a href="https://github.com/its-me-abhishek/ccsync/issues"> |
| 19 | + <img src="https://img.shields.io/github/issues/its-me-abhishek/ccsync?logo=github&color=red&style=for-the-badge" alt="Issues" /> |
| 20 | + </a> |
11 | 21 | <a href="https://github.com/its-me-abhishek/ccsync/pulls"> |
12 | | - <img src="https://img.shields.io/github/issues-pr-raw/its-me-abhishek/ccsync?style=flat-square&logo=github&logoColor=white" |
13 | | - alt="GitHub pull requests"></a> |
14 | | - <a href="https://github.com/its-me-abhishek/ccsync/pulls?q=is%3Apr+is%3Aclosed"> |
15 | | - <img src="https://img.shields.io/github/issues-pr-closed-raw/its-me-abhishek/ccsync?style=flat-square&logo=github&logoColor=white" |
16 | | - alt="Closed pull requests"></a> |
17 | | - |
18 | | -</p> |
19 | | -<p align="center"> |
20 | | - <a href="">Website</a> • |
21 | | - <a href="https://its-me-abhishek.github.io/ccsync-docs/">Documentation</a> • |
22 | | - <a href="https://abhishek31.medium.com/">Blogs</a> • |
23 | | - <a href="https://github.com/its-me-abhishek/gsoc-report">GSoC Report</a> • |
24 | | - <a href="https://www.youtube.com/watch?v=8UhAeM8iWzQ">Setup Video</a> |
25 | | -</p> |
26 | | - |
27 | | ---- |
28 | | - |
29 | | -# CCSync |
30 | | - |
31 | | -CCSync is a web UI and API solution designed to facilitate the retrieval and synchronization of tasks from a [`taskchampion-sync-server`](https://github.com/GothenburgBitFactory/taskchampion-sync-server) container. It provides a seamless experience for managing tasks across all Taskwarrior 3.0 (and higher) clients, whether using the Taskwarrior CLI, the web frontend, or the Taskwarrior Flutter app. It can either be used as a standalone Web frontend to manage or view your Taskwarrior Tasks, or along with [the Taskwarrior Flutter App](https://github.com/CCExtractor/taskwarrior-flutter). |
| 22 | + <img src="https://img.shields.io/github/issues-pr/its-me-abhishek/ccsync?logo=github&color=purple&style=for-the-badge" alt="PRs" /> |
| 23 | + </a> |
| 24 | + <a href="https://github.com/its-me-abhishek/ccsync/commits/main"> |
| 25 | + <img src="https://img.shields.io/github/last-commit/its-me-abhishek/ccsync?logo=git&color=brightgreen&style=for-the-badge" alt="Last Commit" /> |
| 26 | + </a> |
| 27 | + </p> |
| 28 | + |
| 29 | + <p> |
| 30 | + <img src="https://img.shields.io/github/license/its-me-abhishek/ccsync?color=blue&style=for-the-badge" alt="License" /> |
| 31 | + <img src="https://img.shields.io/badge/contributions-welcome-brightgreen?style=for-the-badge&logo=github" alt="Contributions Welcome" /> |
| 32 | + </p> |
| 33 | + |
| 34 | + <p> |
| 35 | + <a href="https://its-me-abhishek.github.io/ccsync-docs/">📘 Documentation</a> • |
| 36 | + <a href="https://abhishek31.medium.com/">📝 Blogs</a> • |
| 37 | + <a href="https://github.com/its-me-abhishek/gsoc-report">📄 GSoC Report</a> • |
| 38 | + <a href="https://www.youtube.com/watch?v=8UhAeM8iWzQ">🎥 Setup Video</a> |
| 39 | + </p> |
| 40 | +</div> |
32 | 41 |
|
33 | 42 | ## Table of Contents |
34 | 43 |
|
35 | 44 | - [Overview](#overview) |
| 45 | +- [Screenshots](#screenshots) |
36 | 46 | - [Features](#features) |
37 | 47 | - [Architecture](#architecture) |
38 | 48 | - [Contributing](#contributing) |
39 | 49 | - [License](#license) |
40 | 50 |
|
41 | 51 | ## Overview |
42 | 52 |
|
43 | | -During the development of CCSync, the primary focus was placed on creating a backend that provides a series of commands capable of interacting with the Taskwarrior client on the user's system. These commands enable users to create, read, update, or delete tasks directly from the web frontend, or the Taskwarrior Flutter app. The CCSync API ensures these tasks are synchronized across all Taskwarrior clients connected to the `taskchampion-sync-server`. |
| 53 | +**CCSync** is a web UI and API that synchronizes your [Taskwarrior](https://taskwarrior.org/) tasks across all your clients using a [`taskchampion-sync-server`](https://github.com/GothenburgBitFactory/taskchampion-sync-server). |
| 54 | + |
| 55 | +Whether you prefer the **CLI**, **Web Frontend**, or **Flutter Mobile App**, CCSync keeps everything in sync efficiently and securely. |
| 56 | + |
| 57 | +## Screenshots |
| 58 | + |
| 59 | +<img src="./assets/01_landing.png"> |
| 60 | +<img src="./assets/02_landing.png"> |
| 61 | +<img src="./assets/03_landing.png"> |
| 62 | +<img src="./assets/04_landing.png"> |
| 63 | +<img src="./assets/05_landing.png"> |
| 64 | +<img src="./assets/01_home.png"> |
| 65 | +<img src="./assets/02_home.png"> |
| 66 | +<img src="./assets/03_home.png"> |
| 67 | +<img src="./assets/04_home.png"> |
| 68 | +<p align="center"> |
| 69 | + <table align="center"> |
| 70 | + <tr> |
| 71 | + <td><img src="./assets/01_home_mobile.png" width="250"></td> |
| 72 | + <td><img src="./assets/02_home_mobile.png" width="250"></td> |
| 73 | + </tr> |
| 74 | + <tr> |
| 75 | + <td><img src="./assets/03_home_mobile.png" width="250"></td> |
| 76 | + <td><img src="./assets/04_home_mobile.png" width="250"></td> |
| 77 | + </tr> |
| 78 | + </table> |
| 79 | +</p> |
44 | 80 |
|
45 | 81 | ## Features |
46 | 82 |
|
47 | | -- **Task Management**: Create, read, update, and delete tasks using Taskwarrior CLI, the web UI frontend, or the Taskwarrior Flutter app. |
48 | | -- **Cross-Platform Synchronization**: Synchronize tasks across all Taskwarrior 3.0+ clients. |
49 | | -- **API Integration**: RESTful API to interact with tasks programmatically. |
50 | | -- **User-Friendly Web UI**: Manage tasks through a web-based user interface. |
51 | | -- **Flutter App Integration**: Seamless integration with the Taskwarrior Flutter app for mobile task management. |
52 | | -- **Backend Commands**: A comprehensive set of backend commands to interact with Taskwarrior clients. |
| 83 | +- **Task Management** — Create, read, update, and delete tasks seamlessly. |
| 84 | +- **Cross-Platform Sync** — Keep all Taskwarrior 3.0+ clients in sync automatically. |
| 85 | +- **RESTful API** — Manage and query tasks programmatically. |
| 86 | +- **Web Frontend** — Clean and responsive UI for easy task handling. |
| 87 | +- **Mobile Integration** — Compatible with the [Taskwarrior Flutter App](https://github.com/CCExtractor/taskwarrior-flutter). |
| 88 | +- **Backend Commands** — Full control via Taskwarrior-compatible commands. |
53 | 89 |
|
54 | 90 | ## Architecture |
55 | 91 |
|
56 | | -CCSync comprises three main components: |
| 92 | +CCSync is composed of **three core modules**: |
| 93 | + |
| 94 | +1. **Backend** — The REST API and logic layer that communicates with Taskwarrior clients. |
| 95 | +2. **Web Frontend** — A modern web UI that stores and manages tasks in-browser. |
| 96 | +3. **Taskchampion Sync Server** — In order to sync tasks with you Taskwarrior instances, CCSync by default uses the offical Taskchampion sync server image to sync tasks. |
57 | 97 |
|
58 | | -1. **Backend**: The main server-side component that interfaces with Taskwarrior clients, performs operations, and provides a RESTful API. |
59 | | -2. **Web Frontend**: A user-friendly web interface built for task management, and credentials retreival. It manages all the tasks in your browser's storage, while the taskchampion syncserver acts as a central point of sync between the frontends, and your CLI clients. |
60 | | -3. **Taskwarrior Flutter App**: The mobile app that allows users to manage tasks on the go, fully integrated with the CCSync API. |
| 98 | +📖 Learn more in the [official documentation](https://its-me-abhishek.github.io/ccsync-docs/). |
61 | 99 |
|
62 | | -For more details, please check out the [documentation](https://its-me-abhishek.github.io/ccsync-docs/). |
| 100 | +## Testing with Postman |
63 | 101 |
|
64 | | -## Contributing |
| 102 | +1. Open **Postman**. |
| 103 | +2. Click **Import** → Select `ccsync.postman_collection.json`. |
| 104 | +3. Modify the body fields and start testing! |
65 | 105 |
|
66 | | -We welcome contributions to CCSync! Please read our [Contributing Guidelines](CONTRIBUTING.md) to get started. Please raise an issue for any query, bug fix, or a feature request. |
| 106 | +## 🤝 Contributing |
67 | 107 |
|
68 | | -## Postman Collection for testing the backend |
| 108 | +We welcome all type of contributions! |
| 109 | +Check out the [Contributing Guidelines](CONTRIBUTING.md) and raise issues or PRs. |
69 | 110 |
|
70 | | -To import the Postman collection: |
| 111 | +<p align="center"> |
| 112 | + <img src="https://img.shields.io/badge/PRs-Welcome-blueviolet?style=for-the-badge&logo=github" alt="PRs Welcome" /> |
| 113 | +</p> |
71 | 114 |
|
72 | | -1. Open Postman. |
73 | | -2. Click "Import". |
74 | | -3. Select the `ccsync.postman_collection.json` file. |
75 | | -4. Click "Import". |
| 115 | +## 💬 Community |
76 | 116 |
|
77 | | -Now you can use the API requests by modifying the body accordingly! |
| 117 | +Join discussions and get support on **Zulip** 👇 |
| 118 | +[](https://ccextractor.org/public/general/support/) |
78 | 119 |
|
79 | | -## Community |
| 120 | +## 📜 License |
80 | 121 |
|
81 | | -We would love to hear from you! You may join the CCExtractor community Zulip: |
| 122 | +Licensed under the **MIT License** — see the [LICENSE](LICENSE) file for details. |
82 | 123 |
|
83 | | -[](https://ccextractor.org/public/general/support/) |
| 124 | +<div align="center"> |
84 | 125 |
|
85 | | -## License |
| 126 | +🔝 [Back to Top](#table-of-contents) |
86 | 127 |
|
87 | | -This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |
| 128 | +</div> |
0 commit comments