Skip to content

fredysudhirjames/timesheetapi

Repository files navigation

Express server for the timesheet app project

This repo is an express server instance for the Task managment app project. The frontend is maintained separeately built using React, maintained in another repository

Still under development.

The idea behind this project is to build a task management app, to keep track of tasks, time spend on each task and also generate invoices for the tasks. The project has 2 routes Tasks and Invoices. Additional details:

  • Tasks handles the create, update and delete of tasks. Fields - task details, time spent on task and a field for invoice status check. This route is complete.
  • Invoices handles the invoice creation. When an invoice creation in initiated all the non-invoiced tasks are bundled and an invoice is generated. Still under development

Code Overview

Features

Models

Tasks

Key Additional Info
Date Date type
Task String type, task details
Hours Number type, time spend on a task in hours with default set to 0.25 (15 mins)
Invoiced Boolean time, default set to false

Invoices

Key Additional Info
Invoice number Number type
Date Date type, default now
Rate Currency type, the hourly rate at which the invoice needs to be generated
Total Hours Number, total invoice hours
Amount Total invoice amount
Tasks An object of task ids for which the invoice is generated for, for any features to be added in the future
invoice file invoice file name

Prerequisites

Getting Started

To get the server running locally:

  • Clone this repo
  • npm install to install all required dependencies.
  • rename .env.example to .env and fill in the details.
  • npm start to start the server.
  • npm run watch to restart the server after file change.
  • npm run test to run test using Jest and Supertest.

About

A NodeJS Express server instance for a task management application - under development

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •