Projektidee- aber wie?

Django, Flask, Bottle, WSGI, CGI…
Antworten
Py-Paul
User
Beiträge: 26
Registriert: Freitag 30. August 2013, 11:55

Hallo,

ich habe die Idee für ein Projekt (das ich wahrscheinlich selbst so gar nicht realisieren kann, aber ich möchte es wenigstens ansatzweise versuchen...).

Es geht mir hier in erster Linie darum zu wissen, ob ich auf dem richtigen Pfad bin und nicht um eine komplette Bauanleitung. Spezifischer geht es um die Frage welches Webframework geeignet wäre. Von denen gibt es viele, nicht wenige scheinen nicht mehr weiterentwickelt zu werden und am häufigsten ist natürlich von Django die Rede. Falls es mit einem schlankeren Framework geht, ohne dass etliches aufwendig hinzuprogrammiert werden muss, wäre mir das sehr recht, z.B. mit Pyramid / Pylons, web2py, Flask,...

Im Grunde soll ein sog. "Multi-Vendor-Marktplatz" aufgebaut werden, also eine Struktur wie Ebay oder Amazon Marketplace, wo verschiedene Verkäufer ihren eigenen Shop einrichten und Käufer den Krimskrams sehen können. Sowas existiert AFAIK nicht bei den bekannten auf Django aufbauenden Shopsystemen. Muss also wohl komplett neu programmiert werden.

Frage: Lohnt es sich auf einem bestehenden Shopsystem aufzubauen und dies zu verändern oder ist es besser alles völlig neu zu machen?

Neben dem Framework sind die Datenbanken bzw. deren Programmierung und mögliche Intrasite-Suchabfragen entscheidend. Da die meisten Daten typisch für relationale DBs sind und Geodaten eine Rolle spielen, halte ich PostgreSQL mit der PostGIS-Erweiterung für die richtige Lösung.

Ich habe schon fleißig gegoogelt, bin aber bis jetzt erfolglos geblieben bei der Suche nach technischen Hintergünden, wie mehrere Suchen realisiert werden können.

Ich gebe mal ein konkretes Beispiel, damit es klarer wird (entspricht nicht ganz meiner Idee, aber das Prinzip ist das gleiche):

Restaurant"marktplatz":
Jeder Retaurantbetreiber kann sein Angebot einstellen (=Multi-Vendor-Marktlatz), Kunden können danach suchen, nämlich mit unterschiedlichen und kombinierbaren (!) Suchen:

1) Art des Restaurants
2) Art der Speisen
3) Ort
4) Preisklasse
5) Bewertung durch User (auf dieser Site; ggf. auch Zugriff auf andere Bewertungssysteme, wie z.B. Google, Qype, etc.)
6) Bringedienst
x) [evtl. noch weitere Suchen]

1-x in frei wählbarer Prioritätenfolge

Eine Abfrage könnte dann z.B. lauten:
Zeige mir alle mit min. 4 Sternen bewertete vegetarische Restaurants, die vegetarisches Sushi für bis zu 10 € anbieten und sich in 2 km Umkreis meines Standorts befinden oder mir das Essen liefern können.


Frage: Wie ist der prinzipiell Weg dahin?


Danke schonmal!

Py-Paul
BlackJack

@Py-Paul: Prinzipiell nimmt man sich eines der Webframeworks, zum Beispiel Django, und eine Datenbank, und programmiert so etwas. :-)
Py-Paul
User
Beiträge: 26
Registriert: Freitag 30. August 2013, 11:55

Hallo,

BlackJack hat geschrieben:@Py-Paul: Prinzipiell nimmt man sich eines der Webframeworks, zum Beispiel Django, und eine Datenbank, und programmiert so etwas. :-)
Ach so :roll:

Das aber steht ja schon, prinzipiell, in meinem Posting drin :lol:

Die Frage geht natürlich dahin, wie das Projekt sinnvoll angegangen werden kann. Wie sollen die Datenbanken aufgebaut werden, um solche Abfragen machen zu können, wie baue ich einen solchen Marktplatz für viele Verkäufer mit einem jeweils eigenen Shop auf, wäre es u.U. sinnvoll auch noch nach Django-Alternativen zu schauen?

Ich weiß, es ist schwierig auf solche Fragen zu antworten, aber es wäre schön, wenn Ihr einem Anfänger den richtigen Weg weisen würdet!

Py-Paul
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Py-Paul hat geschrieben:Die Frage geht natürlich dahin, wie das Projekt sinnvoll angegangen werden kann. Wie sollen die Datenbanken aufgebaut werden, um solche Abfragen machen zu können, wie baue ich einen solchen Marktplatz für viele Verkäufer mit einem jeweils eigenen Shop auf, wäre es u.U. sinnvoll auch noch nach Django-Alternativen zu schauen?
Am besten setzt du es so um, dass alle Prozesse optimal in den Modulen und Datenstrukturen abgebildet werden. Komsisch, schon wieder so eine korrekte Antwort ohne jeden Nutzen :mrgreen:

Das Problem mit deinen Fragen ist, dass man darauf nur mit Allgemeinplätzen antworten kann. Als Außenstehender kann man hier gar keine Ratschlägen geben, da es einfach viel zu viel Unbekannte gibt. Wir wissen ja noch nicht einmal genau was du vor hast. Und selbst wenn wir das wüssten, dann gäb es wahrscheinlich dutzende implizite Anforderungen. Um deine Frage zu beantworten bräucht man also unglaublich viele Details und jede Menge Zeit, da das Resultat wahrscheinlich ein komplettes Designdokument sein würde. Was für dein Projekt sinnvoll ist kannst nur du selber entscheiden (oder jemand, dem du alle Details erklärst).

Fange doch erstmal an mit dem Projekt, konkrete Fragen werden sich dann schon ergeben.
Das Leben ist wie ein Tennisball.
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

Sicherlich möchtest du dabei etwas verdienen in welcher Form auch immer.
Demnach musst du entsprechende Qualität (Sicherheit) garantieren. Sei dir darüber im klaren, dass du für die entsprechende Qualität in den "kleinen" Frameworks wie BottlePy oder Flask, einen vergleichsweise hohen Aufwand betreiben musst, um dies zu erreichen. Eine weitere Frage ist in wie weit du deine entsprechenden Kunden (die Anbieter) Ihre Angebote verwalten lassen möchtest. Django kann dir automatisch einen mächtigen Administrations-Bereich erstellen.

Um evtl. eine grobe Vorstellung zu bekommen was auf dich zukommt, lohnt sich ein Blick auf: https://www.django-cms.org/
Die haben ebenfalls open source ein django shop Plugin für da django cms. Fliegt auf github herum.

Um eine Idee zu bekommen wie man ein großes Flask Projekt aufzieht, hat der Erzeuger hier mal einige Gedanken fest gehalten: https://github.com/mitsuhiko/flask/wiki ... app-how-to
Leider ohne virtualenv, dazu ein Beispiel: https://github.com/mattupstate/overholt

Empfehlung: Lies dir das Django Tutorial durch: https://docs.djangoproject.com/en/1.5/intro/tutorial01/
Und dann jenes von Flask: http://flask.pocoo.org/docs/foreword/
Dann überlege welches dir mehr Arbeit ab nimmt und stelle fest ob es sich für dich lohnt, wenn es dir mehr Arbeit ab nimmt. Oder ob du die Arbeit aufgrund von zu starker Individualitäten dennoch hast.

Dies zur Technischen Fragen.

Weitere Herangehensweise wäre in meinen Gedanken: Die Klassen modellieren, welche die entsprechenden Tabellen stellen. Dann besitzt du schon mal einen Blick auf Details. Auf Grundlage dieser Details, ist es dann relativ einfach grob die Web-Oberflächen zu erstellen (sie wird sich im folgenden häufig ändern). Beginne mit: Login (Passwort Vergessen, Registrierung, etc.), Erstellung erster Daten, Anzeige der Daten, Bearbeiten der Daten. Dann mit den Daten verknüpft arbeiten. Entsprechend angepasst ob du auf Test-Driven-Dev stehst oder nicht.

So evtl. eine grobe Vorgehensweise, wenn es sich um ein privates Projekt handelt, bei welchem der Zeitfaktor keine Rolle spielt. Solltest du irgendwelche Chefs, Gläubiger oder Investoren befriedigen wollen/müssen, lerne erst Software Entwickeln.
Py-Paul
User
Beiträge: 26
Registriert: Freitag 30. August 2013, 11:55

Hallo,

vielen Dank, vor allem an seishin!
Also das ist eine Menge; ich muss mir das jetzt erstmal alles in Ruhe anschauen...

Bis demnächst mal

Py-Paul
Antworten