Skip to content

its-me-abhishek/gsoc-report

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 

Repository files navigation

Taskserver (CCSync)

Google Summer of Code'24

Name : Abhishek
Slack : Link to Slack ID
GitHub Username : its-me-abhishek
Mentor: Mabud Alam

Table of contents

My project work

During the summer period, I worked on the development of CCSync - a web UI + API that helps in retreival and syncing of tasks from a taskchampion-sync-server container. The users can thus create, read, or update tasks on either the Taskwarrior CLI or the frontend (website or the Taskwarrior flutter app) and sync them across all their Taskwarrior 3.0 clients (and higher). My work revolved around creating series of commands on the backend that can be able to perform various actions on the Taskwarrior client of the user, and subsequently integrating all the endpoints to the frontend, i.e., both the Taskwarrior flutter app and the website frontend.

I learnt alot during this process about Golang, React, Docker, Taskwarrior, Flutter, etc.

The following is a demo of working of

  • CCSync website:
    • Landing Page:

      landingpage.1.mp4
    • Home Page Screenshots:

      • Dashboard hp1

      • Task View hp2

      • Setup Guide hp3 hp4

      • FAQ hp5

      • Footer hp6

      • Task view and details:

        twnd.mp4
      • Adding a Task:

        addtask.mp4
      • Deleting all tasks on Firestore:

        delete-firestore

      • Task Filters:

      taskfilters.mp4

Work Track

  1. Logic / Backend Development

Objective: To develop the core backend functionality of CCSync, enabling bidirectional synchronization between Taskwarrior clients and Taskchampion Sync Server.

Name of the Task Description Link to work
Taskwarrior Integration
  • Develop functions to perform various operations on tasks from Taskwarrior.
Link to work
Authentication and Security
  • Implement OAuth Google Sign in so as to generate secrets for users, and for segregation of tasks on the Firestore Database depending on the email of the user
  • Used CORS for restricting unauthorised access to the user's data
Link to work
  1. UI / Frontend Development

Objective: To develop the core frontend functionality of CCSync, using which, the users can sign up/sign in and get their credentials. The users can follow the setup guide to easily setup sync on their Taskwarrior 3.0 clients.

Name of the Task Description Link to work
User Dashboard
  • Develop a dashboard for users to see their tasks, statistics, and sync status.
Link to work
Task List Display
  • Develop a user interface to display a list of tasks fetched from Taskwarrior.
Link to work
Task Detail View
  • Implement a detailed view for individual tasks, including all task attributes and actions.
Link to work
Task Creation and Editing
  • Create forms for adding new tasks and editing existing ones, with validation and error handling.
Link to work
Setup Guide
  • Create an easy guide using which the users can easily setup sync for all their Taskwarrior 3.0 clients (or higher).
Link to work
Link to work
  1. Dockerizing the web app
Name of the Task Description Link to work
Dockerize for easy deployment
  • Dockerize the backend
  • Dockerize the frontend
Link to work
  1. Integrating with Taskwarrior Flutter App
Name of the Task Description Link to work
Integrate CCSync with Taskwarrior Flutter App
  • Add views to add/update tasks in the Taskwarrior flutter app using CCSync
Link to work
  1. Documentation for CCSync
Name of the Task Description Link to work
Create documentation for CCSync
  • Built documentation for CCSync using MkDocs
Link to work
Link to work

Link to work

Weekly Reports

These are the weekly reports that i had submitted to CCSync during GSoC period:

Future Work

  • Although, I have added tests for almost each frontend component and backend functions, still much more extensive testing can be done to test the different possible scenarios or components.
  • Integration of CCSync for syncing/adding Taskwarrior tasks with different services like Slack, Google Calendar, etc.

Personal Note

With GSoC'24 coming to an end, I'd like to thank my mentor Mabud Alam for guiding me all along. I really enjoyed working on the project and I will be continuing my contribution to CCExtractor and open source. 🚀

About

Final report for Google Summer of Code 2024 - Taskserver Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published