Skip to content

Code walkthrough, with incremental unit tests, to build a command line task manager application. Boilerplate code written in C for a guided capstone project.

Notifications You must be signed in to change notification settings

karthik-d/task-manager-cli-boilerplate

Repository files navigation

C Programming Course - Guided Project: Task Manager CLI Application

This is a guided poject, designed for a C programming course, that tests participants' abilty to implement a command-line (CLI) program that lets its users manage their tasks.

A complete project description can be found in description.md. The specification for this problem is laid out below, and automated test-cases have been written down to test the application at each developmental stage. Since we haven’t actually implemented anything yet, the tests are currently failing. You have to solve the problem by implementing the application to get all the tests to pass.

Outline

The code for this capstone project has been partially implemented; the boilerplates for atomic operations on tasks, such as add, delete, mark as done, etc. are provided. All fundamental operations interfacing with files and structures you will need for this project are provided as function APIs for you to parse and comprehend. Your task is to apply these provided APIs to concretize the task manager boilerplate into a working application. description.md provides a walkthrough to help you implement the boilerplate step-by-step. Upon completing each step, you can run the unit tests to verify that you're implementation handles all test cases for that feature correctly.

The function APIs allow you to perform specific operations that will constitute your atomic task manager operations; for instance, to complete the ./task add command (an atomic operation), the relevant task_add() function is defined as a (functionally) incomplete template. The logic for this function - read task, wrap task into structure, and write to file - should be implemented. In this case, you might find the function APIs useful to perform elementary operations such as writing lines to text files, composing a structure using the task specification, displaying a task, etc.

Scroll down for instructions to set up the coding environment locally!

Course Material

This guided project is part of the Short-term Hands-on Supplementary Course in C Programming, conducted by the Computer Science & Engineering Department at Sri Sivasubramaniya Nadar College of Engineering through a practicum-driven lesson plan during May-July 2022.

Link to the Course Page.

Link to the Project Page.

Link to Project Completion Instructions.

Team

Nivedhitha D Karthik Desingu Dr. B. Prabavathy Dr. T. T. Mirnalinee
display-error display-error display-error display-error
B.E. CSE (2018-2022) B.E. CSE (2019-2023) Associate Professor, CSE Professor & Head, CSE

Getting started

1. Getting the Boilerplate Code to your GitHub account

2. Getting the Boilerplate Code to your Local System

On a command line terminal,

  •  git clone <YOUR-REPOSITORY-URL>
    

    The git clone command copies your repository from GitHub to your local computer. Note that this is a git specific command.

  • cd C-Programming-Course_Project-Starter

    Move into your repository's local copy.

  • Edit your code files here.

  • When you think you have made a good amount of progress, add your files, and commit your code.

    git add .
    git commit -m <SHORT-MSG-INDICATING-WHAT-PROGRESS-YOU'VE-MADE>
    
  • When you are done for the day, push your code to GitHub.

    git push origin
    

3. Running the code

  1. You should have a C compiler available for building the code.

  2. You are expected to code in thetask.c file.

  3. You should be able to build the app by running make task.

  4. Once you are done with the changes, you should be able to execute the task app by running the following command from the terminal.

    On Windows:

    .\task.exe
    

    On *nix:

    ./task
    

Note

Once the boilerplate is set up locally, follow these instructions to complete the project.

A Note about / for Windows Users

In the previous sections, you might witness many commands prefixed with ./, or paths containing the / (forward-slash) character.

If you're using the Windows Command Prompt, then you'll need to replace / with \ (back-slash) for these commands and paths to work as expected.

On Windows Powershell, these substitutions are not required.

Expected Issues

A few notes to help you avoid any hiccups while implementing the programming challenge:

  1. If you are on Windows, you might have difficulty getting the tests to pass because of newline UTF encoding issues. If you get stuck, please refer to the thread here.

  2. In Windows machines, the make command might not exist and can prevent you from running the tests. This can be fixed by using WSL, or installing MinGW, among other options.

  3. For any conceptual clarifications, refer to the course material, the C/C++ documentation, or just Google them out!

About

Code walkthrough, with incremental unit tests, to build a command line task manager application. Boilerplate code written in C for a guided capstone project.

Topics

Resources

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages