Skip to content

1337KR3W/Virtualknowledge

Repository files navigation

VK Banner

Node Version Angular Version Ionic Version Capacitor Version Spring Boot Java Version MySQL

Track your work

Virtual Knowledge is a comprehensive, enterprise-grade Software as a Service (SaaS) platform designed to streamline labor tracking and optimize project resource management. Built for modern corporate ecosystems, the application empowers organizations to monitor workforce allocation across multiple concurrent projects through a smart, intuitive weekly timesheet interface.

The platform eliminates administrative friction by allowing employees to log daily project hours, append specific execution details via granular item comments, and submit overarching weekly assessments through a centralized global comment system. By transforming raw time allocation into structured data metrics, Virtual Knowledge provides stakeholders with actionable insights into project costs, operational efficiency, and team velocity.

Stay organized

  • Weekly timesheet
    • Assigned projects and departments
    • Track time spent
    • Write comments
  • Calendar
    • Minimalist component
    • Interaction with Timesheet
  • Role management
    • Let admin manage settings for you

Table of Contents


Frontend Stack

The client architecture is built on top of a cross-platform mobile and web ecosystem using modern web technologies:

  • Core Framework: Angular 20 (new control flow syntax like @if and @for).
  • UI Component Ecosystem: Ionic Framework 8 for hybrid mobile layouts and custom enterprise web interface components.
  • Native Runtime Bridge: Capacitor 8 (including Android and iOS platforms support, Haptics, Filesystem, and Keyboard native integration).
  • Styling & Theming: Custom corporate components styled using SCSS alongside Ionic utility classes.
  • State & Data Utilities: RxJS 7.8 for reactive programming and data streaming, date-fns 4.1 for managing ISO week configurations and date mutations, and localforage for performance-optimized client data persistence.
  • Security & Cryptography: crypto-js 4.2 for secure frontend payload hashing.
  • Code Quality & Linting: ESLint 9 with explicit Angular and TypeScript rulesets.

Backend Stack

The server ecosystem leverages a robust, secure, and production-ready micro-architecture:

  • Language Runtime: Java 17.
  • Core Framework: Spring Boot 3.5.6.
  • Security & Access Control: Spring Security with JSON Web Tokens (JWT via jjwt 0.11.5) for stateless API authorization.
  • Data Access & Mapping: Spring Data JPA with Hibernate for ORM modeling, integrated with dotenv-java for secure, file-isolated environment variable bindings.
  • Validation: JSR-380 / Spring Boot Starter Validation constraints for automated endpoint payload filtering.
  • Database Engine: MySQL 5.7 containerized inside a local Docker network sandbox.
  • Testing Ecosystem: JUnit Jupiter 5.10 and Mockito 5.5 for robust unit isolation testing.

Contribute

Follow these setup instructions to prepare your Windows machine for local development and collaboration.

Prerequisites

Ensure you have the following environments installed on your machine before triggering the build process:

  • NVM for Windows: Node Version Manager to safely switch execution environments.

    Check nvm-windows releases and install the latest version.

    Commands (Powershell as Administrator):

    nvm version

    nvm -v 

    install the latest version of node.js

    nvm install latest 

    install a specific version

    nvm install 24.18.0 

    list of installed node versions

    nvm list 

    use specific version

    nvm use 24.18.0 

    current version used

    nvm current 

    uninstall the latest version

    nvm uninstall latest 
  • Docker Desktop: Required to provision the localized container data layers.

    Visit Docker Desktop and download the latest version.

    Usefull commands:

    run container from docker-comose.yaml in the repository path

    docker compose up -d 

    list active containers

    docker ps

    delete current containers

    docker compose down
  • Java Development Kit (JDK) 17: Set correctly in your system's %JAVA_HOME% variables.

    You can download JavaSE 17 from Oracle

  • Maven: Built-in tool or custom system installation to compile the project dependencies.

    Download Apache Maven Binary zip archive from Maven.

  • Angular: Visit Angular for more information.

    Installation commands:

    install Angular cli

    npm install -g @angular/cli
  • Ionic: Visit Ionic for more information.

    Installation commands:

    install Ionic cli

    npm install -g @ionic/cli

Installation Guide

1. Setup Environment Variables & Local Containers

clone the repository

git clone https://github.com/1337KR3W/Virtualknowledge.git

access to the new folder

cd virtualknowledge

About

Spring Boot Trainning

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages