Skip to content

Updates in VedicDateTime R Package

Ajay Singh edited this page Apr 3, 2025 · 16 revisions

Background

The VedicDateTime R package is a powerful tool for working with dates and times in the Vedic calendar system. Over time, the package has proven to be highly useful, but there is still room for improvement. The current version has some limitations, including the need for enhanced accuracy, additional calendar system support, and expanded functionalities for better usability.

In this project, we propose to update and enhance the VedicDateTime package by incorporating better algorithmic efficiency, improving the integration with modern R packages, introducing robust unit testing, and enhancing package modularity. These updates will significantly improve package usability and performance.

Related work

The VedicDateTime R package was originally developed in GSoC-2022 through two projects: Part A and Part B. The development details are available in this journal article.

This project aims to refine and extend the package further to make it more precise, efficient, and user-friendly. The proposed enhancements will improve its reliability for researchers, historians, and those interested in Vedic timekeeping.

Details of your coding project

The goal of this project is to upgrade the VedicDateTime R package. The following updates are planned:

  • Refactor package structure: Improve the modularity and maintainability of the package by reorganizing internal functions and implementing cleaner function interfaces.
  • Enhance computational efficiency: Optimize existing functions using vectorized computations with the data.table and dplyr packages to improve performance.
  • Expand compatibility with other R packages:
    • Improve integration with lubridate for seamless datetime manipulations.
    • Enhance support for tidyverse functions to make data wrangling easier.
    • Provide better compatibility with ggplot2 for visualizing Vedic date-time information.
  • Implement robust unit testing:
    • Use testthat and covr to ensure code coverage and reliability.
    • Include comprehensive test cases to validate Vedic-Gregorian conversions and date-time computations.
  • Introduce API improvements:
    • Implement function aliases to improve usability and make functions more intuitive.
    • Provide better handling of missing or incorrect inputs with informative error messages.
  • Improve documentation and vignettes:
    • Provide detailed function documentation using roxygen2.
    • Add more real-world use cases and expanded examples in the vignettes.
    • Create a tutorial for first-time users with sample workflows.

Expected impact

These enhancements will significantly improve the performance, modularity, and usability of the VedicDateTime package. The updated package will allow users to efficiently integrate Vedic timekeeping into modern analysis frameworks while ensuring better accuracy and ease of use. Additionally, improved documentation and robust unit tests will facilitate long-term maintenance and community contributions.

Mentors

EVALUATING MENTOR:

Neeraj Dhanraj Bokde, Senior Researcher, Technology Innovation Institute, Abu Dhabi, and former Assistant Professor at the Center for Quantitative Genetics and Genomics, Aarhus University, Denmark. [email protected].

Neeraj has a Ph.D. in Data Science and has contributed to several R packages related to time series analysis, testbenches, and domain-specific applications. Neeraj has been a GSoC mentor since 2020. https://www.neerajbokde.in/

Aditya Gupta, Researcher at the University of Agder, Norway, with extensive experience in data science. Aditya has a Ph.D. in data-driven solutions for environmental issues. [email protected]

Tests

Students, please complete one or more of the following tests before contacting the mentors:

  • Easy: Download the VedicDateTime package and demonstrate it with a naturally occurring time series. Document your findings with RMarkdown.
  • Medium: Suggest possible updates or a new feature you would like to include in the next version of the package and justify its importance.
  • Hard: Develop a dummy implementation of five functions along with a vignette and pass it with no Error/Warning/Note through https://win-builder.r-project.org/.

Solutions of tests

Students should post a link to their test results below:

Contributor Name GitHub Profile Test Results
Niall Unani GitHub Medium Hard
Sanat Kumar Gupta GitHub Test Results
Ajay Singh Github Test Result Github Repository Merged PR Open PR
Clone this wiki locally