PDA

View Full Version : Programma gestione alimentari


Manuelix
21-09-2004, 00:46
Ciao a tutti, ho un quesito da prorpovi, mi è stato proposto di preparare un programmino per gestire ordini/vendite di un grossista alimentare. Non ho ancora tra le mani tutte le specifiche del programma, ma a grandi linee il programma deve fare questo:
- completa libertà per il sistema operativo;
- gestire un database di prodotti (non so se installare un DB o fare in altro modo);
- i prodotti devono essere in duplice lingua, italiano / cinese;
- tramite un file txt i prodotti si devono aggiornare automaticamente;
- stampa fatture varie e report finale relativo ad un certo periodo;
- acquisizione dei prodotti tramite lettore codici a barre USB;
- memorizzazione sicura dei dati.

I miei problemi iniziali sono:
- che linguaggio utilizzare
- come gestire il lettore dei codici a barre;
- ne vale la pena?
- quanto potrebbe valere e quanto tempo potrei perdere;

Come linguaggio conosco il C, impegnandomi un attimo potrei impararmi il C++ e conosco qualcosina di Java.
Avevo pensato di farlo in Java visto che in futuro me lo dovrò studiare per benino, ma come gestisco la porta USB.

Grazie in anticipo per qualsiasi info.

Manuelix
24-09-2004, 18:23
Uppete!:)

Stobby
24-09-2004, 22:10
A grandissime linee mi viene in mente il Php sotto linux.
Esso ti permette di sfruttare i database senza grossi problemi e di creare interfacce grafiche molto buone in un tempo abbastanza breve.

Potresti gestire l'inventario con un database che contenga
ID PRODOTTO TIPO PRODOTTO NOME PRODOTTO (CHE COMPARE SULLA VERSIONE ITALIANA) NOME PRODOTTO (CINESE)

A questo punto, con l'ausilio di una tabellina html e poche righe di codice php potresti stampare tutto l'inventario a video, scriverlo su un file txt oppure dilettarti in altri formati.

Se i conti non sono eccessivamente complessi, lo stesso php come linguaggio è abbastanza preciso e completo da darti una buona dose di possibilità, altrimenti puoi sempre creare degli eseguibili in C che si legano con interfacce php.

Gli aggiornamenti li potresti fare disegnando un'interfaccina stile pannello di controllo VBullettin in cui viene data la possibilità di modificare il Database del negozio. Fatto questo le query vengono da se

Stobby
24-09-2004, 22:13
Un'altra possibilità è quella di usare Python, un linguaggio che ho scoperto essere realmente potente, insieme ai Binding GTK+. In questo modo potresti usare Python come cuore e disegnarti le interfacce con GTK così come faresti con VBasic (Gtk è un po' meglio però...:))

Se ti interessa phyton qui (http://www.python.org) ci sono l'ultima versione e degli ottimi tutorial.

Detesti Linux (maaaaaleeee ;))?

Python esiste anche per Windows, alla pagina che ti ho segnalato trovi tutte le istruzioni per utilizzare l'interprete anche sotto Win.

Spero di esserti stato di aiuto!

Ciao!

Stobby
24-09-2004, 22:23
Scusa se ti suddivido in 3 post la risposta, ma lo faccio per dividere gli argomenti.

Per rispondere alle domande meno tecniche:
ne vale la pena, etc ti posso dire questo.

Tralasciando il possibile vantaggio economico che ne potresti trarre, se sei uno studente, questo è un ottimo modo per cimentarti con una specifica che sia tratta da un reale problema di vita quotidiana, per un programma che debba seguire un ciclo vitale molto più lungo e differente rispetto a quelli che normalmente si progettano per se stessi aka per esercizio.

Secondo me ne potrebbe valere la pena (ripeto, tralasciando i possibili vantaggi economici) poiché è un'esperienza full immersion di programmazione, che ti consente di cimentarti con un linguaggio utilizzandolo a tutto tondo.

Sul tempo... dipende da quanto sei pratico nell'utilizzare il linguaggio che scegli e da quanta documentazione (sul linguaggio) disponi. Tieni conto che se scegli un linguaggio che non conosci (cosa che mi è capitata), hai bisogno di circa 1/2 giorni per impratichirti della sintassi di base e scrivere in scioltezza il codice.
Il tempo di sviluppo... bhé, dipende da quanto desideri sia perfetto il tuo programma. Potresti metterlo insieme in una settimana come in un mese, ripeto, dipende da quante funzioni vuoi implementare, da quanto vuoi che l'interfaccia sia user-friendly, etc, etc..

Riservati almeno un 30% del tempo totale alla correzione dei bug, al testing del programma e via dicendo. Più il tuo programma è testato, più è difficile che dovrai correre dopo a ripararlo di corsa perché il cliente ha scoperto un baco abbastanza grosso...

Ciao!

Manuelix
24-09-2004, 22:43
Grazie mille, è quello che mi volevo sentir dire, il phyton non lo conosco, ma potrei impararlo. Per il discorso di linux sto cercando di migrare totalmente da windows a linux, quindi sono totalmente pro... appena mi danno le specifiche proverò a fare qualcosa.
La cosa che mi preoccupa è fare brutta figura, è per questo che sono indeciso, non vorrei trovarmi nella condizione di aver creato una stupidata.
Per quanto riguarda il DB posso utilizzare un DB vuoto e poi intervenire con le interrogazioni del linguaggio di programmazione scelto o è meglio che installo anche un Mysql così vado sul sicuro?
Io pensavo ad un'applicazione un po' seria quindi con un db mysql al quale eventualmente si potevano collegare altri client futuri.
Il phyton gestisce le porte usb e soprattuto un lettore barcode, scusa ma sono totalmente ignorante in materia.
Grazie ancora infinite.

Stobby
24-09-2004, 23:05
Per quanto riguarda Mysql, l'idea è buona. In questo caso, se progetti un'applicazione client-server potresti anche sfruttare l'interazione ASP+Mysql per effettuare Query, stabilire connessioni con i database, scaricarli, caricarli, leggerli, etc...

Potresti creare le connessioni con ASP, con l'oggetto server.CreateObject, e fargli eseguire i comandi SQL per interagire con il Database creati in Access

In alternativa, puoi scrivere il tutto con VB.. però nn so dirti come si comporti in rete.
Se fossi in te, scriverei l'applicativo con una interfaccia in HTML se l'intenzione è utilizzare il sistema client-server.


Se non sei pratico di linux, ed il programma lo devi scrivere da qui a poco, ti conviene utilizzare Windows per due ottime ragioni:

1) Quasi tutti i driver sono scritti utilizzando, ahime, win come riferimento

2) Se è il tuo primo programma, creati un problema alla volta.
Con Linux avrai già problemi ad avere il controllo completo su di lui (all'inizio è così... poi ti innamori e non lo molli più), non creartene un altro con i linguaggi. Tanto Python non scappa.

Io il prog lo farei... direi al negoziante: "ascolti, io nn ho esperienza, per cui corre un rischio con me, in compenso..." e poi inventala tu.

Tieni a mente che il Computer (ed i linguaggi) lo ha inventato l'uomo, non il Padreterno, per cui, la sua comprensione ed il suo controllo sono sicuramente alla portata umana ;)!!

Per le USB prova a cercare un po' di documentazione in materia su !USB.org (http://www.usb.org/developers/docs/) , almeno credo... in ogni caso Google è sempre lì

Ciao

Manuelix
24-09-2004, 23:14
Perfetto, sei stato chiarissimo e gentilissimo, con linux non sono proprio alle prime armi, so qualcosina, come distro uso gentoo.
Per l'interfaccia grafica potrei usare il PHP che lo conosco, dovrebbe essere simile all'asp, per il linguaggio di programmazione, il VB non mi piace molto, anche se molto semplice, avevo pensato al java e guardando sul mitico google avevo trovato qualcosa riguardo all'usb.
Il sito che mi hai consigliato non lo conoscevo.
Non posso fare altro che ringraziarti tantissimo, sono in debito.

Stobby
24-09-2004, 23:17
Nessun problema,
se hai bisogno posta pure.
Il sito credo sia quello ufficiale dello standard USB... credo che lì tu possa trovare realmente tutto sull'Universal Serial Bus.
a presto e buonanotte! ;)

projay
27-09-2004, 22:49
per i lettori ottici non importa l'usb. sono come una tastiera. appena leggi il codice è come se digitassi sulla tastiera i numeri del codice a barre.

Io ti consiglio di fare un software Client che lavori su MySQL. Il software client lo puoi fare col programma che preferisci. Se ti vuoi sbrigare usa il Vb.NET.

anx721
28-09-2004, 01:54
Originariamente inviato da Stobby
Io il prog lo farei... direi al negoziante: "ascolti, io nn ho esperienza, per cui corre un rischio con me, in compenso..." e poi inventala tu.

Se l'architetto che hai assoldato ti rispondesse in questi termini gli faresti costruire la casa?


Un fatto è fare esperienza, un fatto è assumersi la responsabilità di un'aplicazione seria in ambito commerciale...

La programmazione non è una corrida per dilettanti allo sbaraglio... il tutto IMHO :rolleyes:

Stobby
29-09-2004, 18:23
nessuno dice questo e nessuno dice di non assumersi responsabilità. Non bisogna tuttavia vendere ad un cliente ciò che non si sa fare, né fare sentire il cliente in diritto di pretendere cose al di sopra delle nostre possibilità.

Se il cliente ha bisogno di un programma iper professionale, contatta un'azienda specializzata nella produzione di software professionale, comunica le proprie esigenze e può pretendere quello che vuole. Se lo stesso cliente, per motivi sconosciuti, si rivolge ad uno studente universitario che deve fare esperienza, DEVE sapere che affidandosi a lui deve mettere in conto che di errori lo studente ne potrà fare, alcuni dei quali anche gravi. Lo studente che programma, in questo caso, non deve sottovalutare l'impegno che si è preso e deve cercare di dare il massimo e progettare il software al meglio, ma allo stesso tempo, deve anche mettere in guardia chi gli commissiona il lavoro della sua poca esperienza in merito a progetti "reali", dando la possibilità al committente di scegliere...


Questo non significa affatto essere dilettanti allo sbaraglio, ma semplicemente avere buon senso e rispettare il lavoro altrui.

anx721
29-09-2004, 18:30
Originariamente inviato da Stobby
nessuno dice questo e nessuno dice di non assumersi responsabilità. Non bisogna tuttavia vendere ad un cliente ciò che non si sa fare, né fare sentire il cliente in diritto di pretendere cose al di sopra delle nostre possibilità.

Se il cliente ha bisogno di un programma iper professionale, contatta un'azienda specializzata nella produzione di software professionale, comunica le proprie esigenze e può pretendere quello che vuole. Se lo stesso cliente, per motivi sconosciuti, si rivolge ad uno studente universitario che deve fare esperienza, DEVE sapere che affidandosi a lui deve mettere in conto che di errori lo studente ne potrà fare, alcuni dei quali anche gravi. Lo studente che programma, in questo caso, non deve sottovalutare l'impegno che si è preso e deve cercare di dare il massimo e progettare il software al meglio, ma allo stesso tempo, deve anche mettere in guardia chi gli commissiona il lavoro della sua poca esperienza in merito a progetti "reali", dando la possibilità al committente di scegliere...


Questo non significa affatto essere dilettanti allo sbaraglio, ma semplicemente avere buon senso e rispettare il lavoro altrui.

bhè, la vediamo diversamete, è solo che dai presupposti mi pare che l'amico non abbia quel bagaglio minimo di conoscenze per realizzare ciò che gli è stato chiesto...poi posso pure aver interpretato male; quello che non condivido non è che uno studente possa fare in proprio un'applicazione commerciale, ma che qlkuno che ancora deve imparare i linguaggi (consoce C e un poketto java...) si assuma un simile incarico. Comunque chiudiamo qui e auguriamogli di fare bella figura ;)

Stobby
29-09-2004, 18:39
ok! ;) :D