time-management Tailwind Templates

Time Management

A comprehensive time management app with a web frontend, mobile app, and backend API. Frontend: Vue.js 3, Vuetify, Pinia, Vite, Tailwind CSS, Axios, Chart.js. Mobile: Expo, React Native, React Navigation, Axios, Tailwind CSS. Backend: Elixir, Phoenix, Ecto, PostgreSQL, Guardian. Deployment: Docker, Docker Compose, Nginx, Expo, GCP.

Time Manager

Build Status Docker Pulls Docker Frontend Pulls PostgreSQL Elixir Vue.js

Description

Time Manager is a powerful tool designed to manage working times and user clocks. It provides a structured API backend using Elixir and Phoenix, along with a Vue.js-powered frontend for seamless user experience.

The application uses:

  • Backend: Elixir and Phoenix Framework
  • Frontend: Vue.js 3
  • Database: PostgreSQL

Features

  • User and Clock management
  • Working time tracking
  • JWT-based authentication
  • CI/CD pipelines integrated with Docker and GitHub Actions
  • PostgreSQL database with relational mappings
  • Vue.js frontend with a responsive UI

Architecture

The system is composed of:

  • Backend Service: Provides RESTful APIs built in Elixir using the Phoenix Framework.
  • Frontend Service: A Vue.js application served with Nginx.
  • Database: PostgreSQL for relational data storage.

Installation

Prerequisites

  • Docker
  • Docker Compose
  • PostgreSQL

Steps to Run Locally

  1. Clone the repository:

    git clone [email protected]:xRezio/LIL10-time-manager-CI.git
    cd LIL10-time-manager-CI
    
  2. Setup environment variables:

Create a .env file based on .env.example and fill in the necessary environment variables.

  1. Build and run the services using Docker Compose:

    docker-compose --profile dev up -d --build
    
  2. Run migrations (for the backend service):

    docker-compose exec app mix ecto.create
    docker-compose exec app mix ecto.migrate
    
  3. Access the application:

CI/CD Pipeline

This project is configured to automatically build and deploy via GitHub Actions and Docker Hub.

  • Build & Push Images: Every push to main triggers a GitHub Action that builds and pushes Docker images for both backend and frontend.
  • Deployment: After a successful build, the app is deployed using Docker Compose on a Google Cloud VM.

Top categories

Loading Svelte Themes