Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Creazione gestionale timesheet partendo da foglio excel

    Buonasera,
    per un progetto ho la necessità di sviluppare un software gestionale per la gestione delle ore dei dipendenti. In pratica si tratta di partire da un foglio excel principale che legge dati in modo dinamico da altri fogli dello stesso documento e anche da file diversi e ricrearlo in Java possibilmente dato che è un linguaggio che conosco abbastanza bene.

    Quindi avrò alcune colonne che saranno valorizzate manualmente dagli utenti e altre che, ho pensato io, potrebbero essere valorizzate con delle combo-box dinamiche i cui dati verrano presi da un database precedentemente popolato. A questo punto mi servirebbe un livello intermedio possibilmente che mi permetta di creare una procedura automatica che mi permette di "trasferire" i dati da fogli excel in un database (tipo Mysql, SQLServer ecc.) in modo agevole.

    Tutto questo sistema deve appoggiarsi su un database (come già detto) e deve essere possibile una gestione degli utenti dove devono essere previsti due livelli di utenza. Un primo di utenza semplice dove il dipendente può inserire, modificare e in generale gestire le proprie ore e un altro di amministratore che può operare su tutti gli account ed eventualmente (questo punto non è ancora ben definito) approvare le ore.

    Qual'è il modo migliore per implementare una soluzione di questo tipo? Meglio un'applicazione web (es. scritto con Spring boot) o una applicativo stand-alone (scritto con le JAvaFX)? Qualcuno ha idea di come creare il tutto nel modo più pulito e funzionale possibile?

    La ciliegina sulla torta è che deve essere possibile esportare i rapportini ore in formato Excel cosi da poter essere facilmente condivisi.

    Grazie in anticipo per chiunque mi aiuterà.
    Un saluto, Elias.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da elias.86 Visualizza il messaggio
    per un progetto ho la necessità di sviluppare un software gestionale per la gestione delle ore dei dipendenti. In pratica si tratta di partire da un foglio excel principale che legge dati in modo dinamico da altri fogli dello stesso documento e anche da file diversi e ricrearlo in Java possibilmente dato che è un linguaggio che conosco abbastanza bene.
    Partiamo dalla questione su Excel. Secondo me i fogli Excel dovrebbero essere usati solo per esportazione e, potenzialmente/possibilmente con vari limiti e linee guida, per importazione dei dati.

    Ma il grosso del lavoro dovrebbe farlo una applicazione. L'ideale, possibilmente, sarebbe fare una web application. Se hai una rete intranet aziendale a cui tutti i dipendenti possono accedere e hai modo di mettere una macchina che fa da "server", è fattibile. Se poi volessi "esporre" la applicazione su internet in modo che sia fruibile anche da dipendenti a casa o comunque fuori ufficio, è ovviamente anche fattibile. Naturalmente con tutte le cautele e accorgimenti sul fronte della "sicurezza".

    Ma queste cose appena dette NON sono la parte rilevante. Se vuoi fare un gestionale per gestire le ore di lavoro dei dipendenti, devi innanzitutto pianificare, progettare, architettare tutto questo in maniera accurata prima di tutto dal punto di vista concettuale. Quindi devi sapere bene cosa vuoi gestire, con quale flusso di lavoro, da parte di chi, con quali vincoli, ecc...

    Per spiegare meglio ti faccio un esempio reale, che è quello che capita a me. L'azienda di cui sono dipendente utilizza una applicazione web "commerciale" (non faccio il nome) per tutta la gestione delle ore dei dipendenti, le richieste di permessi/ferie, ecc...
    A me è stato dato un indirizzo web (di quella applicazione su internet) e una utenza (di cui gestisco io la password). Io mi collego lì e posso richiedere permessi/ferie, compilare i timesheet, vedere lo storico, ecc...

    Nel mio caso, i timesheet sono "per settimana". Ogni lunedì mattina mi arriva una email aziendale che mi dice "guarda che hai un nuovo timesheet xyz da compilare". E io so che entro la settimana dovrò compilare e confermare il timesheet. Nel tuo caso i timesheet dovranno essere mensili o settimanali?

    In un timesheet ci possono essere diverse "commesse". Io nel mio caso ho sempre una sola commessa già preimpostata "Consulenza / Standard" perché lavoro in consulenza presso un cliente. Ma per altri dipendenti potrebbe essere diverso.
    In un timesheet si specificano ovviamente le ore lavorate ma deve essere anche possibile, ad esempio, mettere delle note. In questo periodo purtroppo di emergenza, io sto lavorando da casa e per ciascun giorno devo indicare nelle note "Home Working".

    In quali "stati" si può trovare un timesheet? Sicuramente mi viene in mente: "in caricamento" (il dipendente sta ancora caricando dati), "confermato" (il dipendente ha confermato e il ts deve essere verificato da qualcuno), poi potrebbe essere "approvato" oppure "rifiutato" (per qualche motivo). Ma potrebbero esserci altri stati (che ora mi sfuggono).
    Nella mia azienda ci sono diverse business unit. Io ho un mio referente, che è anche la persona che mi approva i ts e i permessi/ferie. Immagino (ma credo sia così) che il mio referente possa "vedere" solo il mio ts e quello dei dipendenti a lui associati ma non possa vedere i ts di altri dipendenti associati ad altri referenti. Insomma, ci sono sicuramente regole ben precise di visibilità dei dati.

    Comunque, per tagliare corto e non andare troppo oltre. Progettare "da zero" una gestione di questo tipo NON è banale. Ci vuole molto impegno innanzitutto per delineare, modellare a priori tutto quanto a livello concettuale. Bisogna chiarire e dettagliare bene quale dovrà essere il "flusso" di lavoro sui timesheet, chi potrà vedere le cose, come e quando, ecc...

    E in tutto questo il linguaggio di programmazione NON conta. Così come NON conta il framework e/o le librerie che si intende utilizzare. E anche per il DBMS e la API di accesso al DB la scelta è abbastanza relativa e ININFLUENTE.

    Una applicazione del genere la puoi fare in Java con Spring Framework puro, oppure in Kotlin con Spring Boot, oppure in Scala con il Play Framework, ecc... E come DBMS puoi usare uno qualunque di quelli noti, es. MySQL, PostgreSQL, ecc...

    Quello che conta è prima di tutto la PROGETTAZIONE a livello concettuale.
    Ultima modifica di andbin; 21-04-2020 a 10:19
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.