hisener / time-tracker

A simple time tracking application built with Spring MVC and ReactJS.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Time Tracker

A simple time tracking application built with Spring MVC and ReactJS.

Screenshot

Features

  • Start a time to track your time
  • Book time using timer or manually.
  • List logs (also query by description)
  • Dockerized 🐳

Future Improvements

  • Handle errors on UI. ie: Show an error message.
  • Use redux-localstorage. So after starting timer, a user can close the tab.
  • Tests (both API and frontend)
  • Separate actions/index.js into two files. (same for reducers/index.js)
  • Refactor components/.
  • Disable redux-logger in production mode.
  • More documentation

Usage

Prerequisites

  • Docker (17.05 or higher)
  • Docker compose
docker-compose up --detach

Open http://localhost:8081 for web client.

Development

Modules

  • Web Client
  • REST API
    • Spring MVC application with two endpoints (create & list)
    • Uses MongoDB (needs MONGO_URI environment variable)
  • Mongo Seed
    • Creates sample data on MongoDB
    • You can disable it just deleting it from docker-compose.yml

Prerequisites

  • JDK 1.8+
  • Maven 3+
  • Node.js 8+
  • npm 5+
  • MongoDB 3+
# To run rest-api
cd rest-api/
MONGO_URI=mongodb://yourmongouri:port mvn spring-boot:run

# To run front-end in development mode
cd web-client/
npm install
npm start # It opens a tab (localhost:3000)

Licence

MIT. Copyright (C) Halil İbrahim Şener.

About

A simple time tracking application built with Spring MVC and ReactJS.

License:MIT License


Languages

Language:JavaScript 68.7%Language:Java 22.9%Language:HTML 5.8%Language:Dockerfile 2.3%Language:CSS 0.4%