TdP-prove-finali / Introduzione

Istruzioni e documentazione per la proposta e lo svolgimento delle prove finali relative al corso di Tecniche di Programmazione.
http://bit.ly/tecn-progr
Apache License 2.0
4 stars 13 forks source link

Gestione del backoffice di un call center #16

Closed stefania191707 closed 5 years ago

stefania191707 commented 6 years ago

Studente proponente

s191707 Stefania Palese

Titolo della proposta

Gestione del backoffice di un call center

Descrizione del problema proposto

Il progetto si basa su un tirocinio da me svolto nel backoffice IT di un call center che vende prodotti di bellezza. Lo scopo è quello di poter gestire innanzitutto le persone da chiamare, dette leads, che vengono comprate da dei fornitori ed entrano in un ciclo per poi diventare clienti o essere eliminate. Il backoffice gestisce anche i prodotti che vengono venduti. Bisogna dunque prevedere la domanda di leads e prodotti, gestire il magazzino dei prodotti, capire da quale fornitore comprare e a che prezzo vendere i prodotti per massimizzare i profitti.

Descrizione della rilevanza gestionale del problema

Dal punto di vista gestionale le cose più importanti sono: 1) la previsione della domanda, che è di tipo stagionale perché storicamente si è osservato che ad agosto, quando le persone sono in vacanza, la contattabilità è più bassa e le persone sono meno disposte a comprare, ma anche con trend perché la resa aumenta con l’aumentare dei clienti. Si prevede infatti che un cliente acquisito riacquista il prodotto 3-4 volte l’anno. 2) Gestione del magazzino sia dei leads che dei prodotti. 3) Massimizzazione dei profitti: è importante stabilire quanti leads comprare dai vari fornitori (fornitori con prezzi più alti garantiscono una maggiore resa) e come cambia la situazione scegliendo prezzi diversi per i prodotti.

Descrizione dei data-set per la valutazione

I dati utilizzati saranno presi da dei file csv che consistono in una serie di nominativi (nome, cognome, numero di telefono ed eventuale indirizzo per la spedizione). Questi dati sono molto simili a quelli utilizzati durante il tirocinio ma non saranno dati reali per una questione di privacy. Il database sarà quindi composto da una tabella di nominativi per i leads, una per i contatti (leads che hanno comprato), una tabella dei prodotti e infine una tabella per gli ordini di vendita effettuati.

Descrizione preliminare degli algoritmi coinvolti

Il programma dovrà essere in grado di creare, modificare o eliminare leads, contatti, prodotti e ordini di vendita. Gli algoritmi più complessi riguardano sicuramente la previsione della domanda e la massimizzazione dei profitti. Il primo deve tener conto che bisogna prevedere la domanda per 3 fornitori differenti, che la domanda è esponenziale con trend e che c’è anche un’altra lista da chiamare ed è quella dei già clienti (costo pari a zero e resa molto alta). L’algoritmo per la massimizzazione dei profitti ci deve dire quanto ordinare da ciascun fornitore, cercando la situazione ottimale tra il costo dei leads e la resa che hanno (ad esempio leads che provengono da una campagna di Facebook dedicata alla vendita dei nostri prodotti avranno un costo elevato ma una resa maggiore). l’algoritmo deve anche essere in grado di dirci come cambia la situazione cambiando il prezzo dei prodotti e se conviene oppure no farlo (in questo caso bisogna tener conto che aumentando i prezzi la resa diminuisce)

Descrizione preliminare delle funzionalità previste per l’applicazione software

L’utente sarà in grado di visualizzare, creare o modificare leads, contatti, ordini di vendita e prodotti. Deve essere in grado di visualizzare dei report riguardo le vendite (ad esempio quante unità di un tale prodotto sono state vendute), controllare l’andamento del magazzino di leads e prodotti, calcolare la previsione della domanda e calcolare l’ottimo.

fulcorno commented 6 years ago

La tematica è adeguata e pertinente al corso.

Dalla descrizione ho tre osservazioni:

  1. sarebbe bene ridurre al minimo tutte le funzionalità "anagrafiche" (visualizza/crea/modifica ecc. dei diversi tipi di dati), visto che portano via molto tempo e non aggiungono molto dal punto di vista algoritmico. In una applicazione "reale" sono necessarie, ma per la prova finale non sono particolarmente utili.
  2. la struttura proposta per il database mi pare incompleta e non ben strutturata. Lead e Contatti dovrebbero essere (secondo me) in una sola tabella. Manca una tabella con i prodotti. Manca una tabella con i fornitori. Dovresti capire bene quali informazioni ti servono (soprattutto per la parte di ottimizzazione), e da lì partire a progettare il DB. Non sentirti troppo "legata" alla struttura attuale dei file CSV.
  3. non mi è molto chiaro quali siano gli algoritmi che si dovranno utilizzare. Hai ben descritto cosa dovranno ottimizzare, ma non ho capito con quale tecnica (simulazione, ricorsione, calcolo numerico, applicazioni di modelli visti in altri corsi, ...).

Ti chiederei di chiarire il punto 3, prima di approvare la richiesta.

fulcorno commented 6 years ago

hai ricevuto il commento? è tutto chiaro?

stefania191707 commented 6 years ago

Il 2018-08-31 09:50 Fulvio Corno ha scritto:

La tematica è adeguata e pertinente al corso.

Dalla descrizione ho tre osservazioni:

  • sarebbe bene ridurre al minimo tutte le funzionalità "anagrafiche" (visualizza/crea/modifica ecc. dei diversi tipi di dati), visto che portano via molto tempo e non aggiungono molto dal punto di vista algoritmico. In una applicazione "reale" sono necessarie, ma per la prova finale non sono particolarmente utili.
  • la struttura proposta per il database mi pare incompleta e non ben strutturata. Lead e Contatti dovrebbero essere (secondo me) in una sola tabella. Manca una tabella con i prodotti. Manca una tabella con i fornitori. Dovresti capire bene quali informazioni ti servono (soprattutto per la parte di ottimizzazione), e da lì partire a progettare il DB. Non sentirti troppo "legata" alla struttura attuale dei file CSV.
  • non mi è molto chiaro quali siano gli algoritmi che si dovranno utilizzare. Hai ben descritto cosa dovranno ottimizzare, ma non ho capito con quale tecnica (simulazione, ricorsione, calcolo numerico, applicazioni di modelli visti in altri corsi, ...).

Ti chiederei di chiarire il punto 3, prima di approvare la richiesta.

-- You are receiving this because you were assigned. Reply to this email directly, view it on GitHub [1], or mute the thread [2]. [ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/TdP-prove-finali/Introduzione/issues/16#issuecomment-417582843", "url": "https://github.com/TdP-prove-finali/Introduzione/issues/16#issuecomment-417582843", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } }, { "@type": "MessageCard", "@context": "http://schema.org/extensions", "hideOriginalBody": "false", "originator": "AF6C5A86-E920-430C-9C59-A73278B5EFEB", "title": "Re: [TdP-prove-finali/Introduzione] Gestione del backoffice di un call center (#16)", "sections": [ { "text": "", "activityTitle": "Fulvio Corno", "activityImage": "https://assets-cdn.github.com/images/email/message_cards/avatar.png", "activitySubtitle": "@fulcorno", "facts": [ ] } ], "potentialAction": [ { "name": "Add a comment", "@type": "ActionCard", "inputs": [ { "isMultiLine": true, "@type": "TextInput", "id": "IssueComment", "isRequired": false } ], "actions": [ { "name": "Comment", "@type": "HttpPOST", "target": "https://api.github.com", "body": "{\n\"commandName\": \"IssueComment\",\n\"repositoryFullName\": \"TdP-prove-finali/Introduzione\",\n\"issueId\": 16,\n\"IssueComment\": \"{{IssueComment.value}}\"\n}" } ] }, { "name": "Close issue", "@type": "HttpPOST", "target": "https://api.github.com", "body": "{\n\"commandName\": \"IssueClose\",\n\"repositoryFullName\": \"TdP-prove-finali/Introduzione\",\n\"issueId\": 16\n}" }, { "targets": [ { "os": "default", "uri": "https://github.com/TdP-prove-finali/Introduzione/issues/16#issuecomment-417582843" } ], "@type": "OpenUri", "name": "View on GitHub" }, { "name": "Unsubscribe", "@type": "HttpPOST", "target": "https://api.github.com", "body": "{\n\"commandName\": \"MuteNotification\",\n\"threadId\": 365798759\n}" } ], "themeColor": "26292E" } ]

Links:

[1] https://github.com/TdP-prove-finali/Introduzione/issues/16#issuecomment-417582843 [2] https://github.com/notifications/unsubscribe-auth/AoPue7VqGTSmhUyyeeEgh2AX3l4ohD56ks5uWOq0gaJpZM4VzaVn

Buongiorno professore, mi scuso per il ritardo ma ho preferito concentrarmi sugli ultimi esami . Per quanto riguarda i punti 1 e 2: sono d'accordo sul mettere lead e contatti insieme e semplificare le funzionalità " anagrafiche" dove possibile, il database possiede una tabella dei fornitori, purtroppo non l'ho spiegato bene nella proposta. Per quanto riguarda il punto 3 vorrei darle una risposta completa ma ho bisogno di fare un paio di ricerche. Se per lei va bene io ho l'ultimo esame mercoledì e potrei darle una risposta entro venerdì o al massimo entro fine settimana. Buona giornata, Stefania Palese

fulcorno commented 6 years ago

Per quanto riguarda il punto 3 vorrei darle una risposta completa ma ho bisogno di fare un paio di ricerche. Se per lei va bene io ho l'ultimo esame mercoledì e potrei darle una risposta entro venerdì o al massimo entro fine settimana.

ok, va benissimo. Volevo solo essere certo che avessi ricevuto i commenti.

fulcorno commented 5 years ago

Vorrei solo verificare se questa proposta è ancora attiva (ci stai ancora pensando), o se chiuderla per "inattività" dopo 6 mesi. Grazie

fulcorno commented 5 years ago

Inattiva da oltre un anno.