# Social Network programmieren



## tsbmusic (22. Februar 2011)

Hi Leute,

ich hab mir jetzt n neues Projekt ausgedacht, wo ich ein Soziales Netzwerk bauen möchte. Mir fällt nur eine Idee zur Umsetzung. Also wie ich das grundsätzlich aufbauen soll. Das ist ein bisschen schwer zu erklären...

Mit grunsätzlich mein ich
1. wie ich den Code aufbauen soll (Code von Templates trennen?)
2. wie die Infrastruktur aussehen soll (also ob ich das mit modulen realisieren soll oder wie auch immer)

Also es sollen so sachen da drin sein wie
- PM's
- Chat
- Profile
- Bilder
- Videos
- etc.

So ähnlich wie facebook und twitter halt.

Hoffe das war jetzt nicht zu kompliziert ausgedrückt... 

Gruss
tsbmusic


----------



## tsbmusic (25. Februar 2011)

Ich bin doch garantiert nicht der erste der auf so ne Idee kommt oder? Irgendwer von euch hat doch bestimmt schonmal so ein Projekt gemacht. Wie würdet ihr das ganze denn angehen?


----------



## Bratkartoffel (25. Februar 2011)

Hi,

ich würde hier wie an ziemliches jedes andere IT-Projekt rangehen.
Brainstormin, Lasten-/ Pflichtenheft (Was muss das Teil genau können? Welche Features werden bewusst nicht eingebaut? Wie soll sich das Netz von anderen unterscheiden? Für wieviele User ausgelegt?), Datenbank-Modell und so weiter, immer Schritt für Schritt.

Habe mich mit dem Thema noch nicht weiter beschäftigt, da es meiner Meinung nach eh schon viel zu viele soziale Netzwerke gibt. Und ein soziales Netzwerk braucht sehr viele User um interessant zu sein.

Gruß
BK


----------



## tsbmusic (25. Februar 2011)

Danke das ist auf jeden Fall schonmal ein sehr guter Anfang. Aber bestimmt hat auch noch wer anders was da zu zu sagen? Würde mich über jede Hilfe freuen denn so ein Projekt aufzustellen erfordert alleine schon eine ganze Menge...


----------



## Kyrodust (25. Februar 2011)

Hallo!

Ich weiß nicht ob dir das wirklich was hilft, aber es gibt da "Diaspora". Das ist ein Social Network von dem der Quellcode veröffentlicht wurde.

Eventuell kannst du dir dort ein paar Inspirationen holen bzw. dir das System so eines Social Networks mal anschauen.

Hier ist jedenfalls mal der Link: https://joindiaspora.com/

Ganz unten findest du eine Anleitung wie man es installiert bzw. wie man an den Quellcode kommt.

Ich hoffe, dass dir das etwas weiterhilft.

lg Michael


----------



## tsbmusic (25. Februar 2011)

Danke erstmal. Aber ich hatte eigentlich nicht vor meine ganze Seite in Ruby zu schreiben, da ich davon überhaupt keine Ahnung hab. Aber ein bisschen weitergeholfen hat es mir schon da ich gesehen habe wie das aufgebaut war. 

Gibts hier vielleicht irgendwen der damit schonmal was zu tun hatte?


----------



## tsbmusic (28. April 2011)

Oder mal ne Frage dazu:

Hat es Sinn eine ganze Seite in Ruby zu schreiben? Und welche Vorteile gibt es PHP gegenüber?


----------



## Parantatatam (28. April 2011)

Ruby ist komplett objektorientiert und im Gegensatz zu PHP vorher durchdacht wurden. Ich persönlich habe früher mit PHP gearbeitet und nutze es auch heute noch ab und zu, allerdings bin ich zu Ruby gewechselt, da das viel mehr Freude bereitet. Probier es einfach aus und du wirst sehen, was der Unterschied ist.

Und ja: es ist durchaus sinnvoll eine Seite in Ruby zu schreiben. Siehe dazu auch Ruby on Rails, kurz RoR.


----------



## hiltwin (28. April 2011)

Macht es nicht eher Sinn, sich da in drupal einzuarbeiten oder andere fertige Systeme dafür?


----------



## tsbmusic (28. April 2011)

@hiltwin: Für mich nicht ich hab mal mit Xoops angefangen, aber da hab ich den Core so krass umprogrammiert das ich mir irgendwann dachte ich kann auch einfach was selber schreiben und seit dem lass ich die Finger von CMS' 

@e n c: Danke für deine Tipps kannst du mir irgendwas empfehlen an Tutorials oder Büchern bevor ich mich durchs Netz google?


----------



## Parantatatam (28. April 2011)

Das Wichtigste, was du wissen musst, und generell die wichtigste Quelle bei Ruby, ist, analog zu PHP, die Referenzseite. Da findest du weiterführende Informationen und auch eine Seite, welche dir die Unterschiede zu PHP auflistet.


----------



## tsbmusic (29. April 2011)

Okay danke und jetzt hab ich noch eine Frage zu RoR: Ist das einfach ne Erweiterung oder ne Abwandlung von Ruby? Oder was völlig anderes?


----------



## Parantatatam (29. April 2011)

Ruby on Rails ist ein Framework geschrieben in Ruby. Ruby ist an sich keine direkte Websprache sondern eher eine Sprache mit der du alles anstellen kannst, was du willst. RoR stellt beispielsweise einen eigenen Webserver bereit und hat das MVC-Pattern optimiert. In beinahe allen Fällen, in denen du auf Webseiten basierend auf Ruby stößt, läuft RoR im Hintergrund.


----------



## tsbmusic (29. April 2011)

Ich hab jetzt mal angefangen mich mit RoR vertraut zu machen aber ich kriege den integrierten Server irgendwie nicht zum Laufen. Ich gebe einfach ganz normal wie angegeben in der cmd.exe "rails server" ein, aber wenn ich dann auf http://localhost:3000 gehe kommt da der "Seiten-Ladefehler" von Firefox.


----------



## Parantatatam (29. April 2011)

Was wird dir dann in der CMD angezeigt?
Versuch mal http://0.0.0.0:3000


----------



## tsbmusic (29. April 2011)

So sieht das bei mir aus und das mit dem 0.0.0.0:3000 funktioniert auch nicht.


----------



## Parantatatam (29. April 2011)

Das sieht so aus als hättest du noch gar keine Webseite mit Ruby on Rails erstellt. Das muss natürlich vorher geschehen. Außerdem musst du zu dem jeweilgen Verzeichnis wechseln und in diesem dann den Befehl _rails server_ aufrufen.


----------



## tsbmusic (29. April 2011)

Und wie Wechsel ich in das verzeichnis ? Ich die Projekt schon mit rails new d:\xampp... Und so weiter das verzeichnis wurde auch erstellt und die Ordner darin.


----------



## Parantatatam (30. April 2011)

Unter UNIX ist es der Befehl _cd_, vermutlich ist es auch dieser im CMD.


----------



## tsbmusic (30. April 2011)

Ja ist er auch aber das ändert irgendwie nichts daran...


----------



## Parantatatam (30. April 2011)

In welchem Verzeichnis liegt dein RoR-Projekt? (komplette Pfadangabe mit Laufwerkbuchstabe!)


----------



## tsbmusic (30. April 2011)

D:/xampp/htdocs/mywilke

Da sind halt die erstellten ordner drin.


----------



## Parantatatam (30. April 2011)

Ich würde es zwar an deiner Stelle nicht in dein XAMPP-Verzeichnis packen, aber okay. Du solltest diese Befehle hier eingeben:

```
cd D:/xampp/htdocs/mywilke

rails server
```


----------



## Matthias Reitinger (30. April 2011)

Du musst noch auf das richtige Laufwerk wechseln:

```
d:
cd d:\xampp\htdocs\mywilke
rails server
```

Grüße,
Matthias


----------



## KaiBone (30. April 2011)

Matthias Reitinger hat gesagt.:


> Du musst noch auf das richtige Laufwerk wechseln:
> 
> ```
> d:
> ...


Das muss man nicht zwangsläufig. Man kann auch einfach den  /d Befehl bei cd nutzen.
	
	
	



```
cd /d d:\xampp\htdocs\mywilke
rails server
```

Gruß 
KaiBone


----------



## SE (30. April 2011)

Ist euch vielleicht mal der Fehler am command aufgefallen ?
Heißt das Server-Binary nun nur rails.exe oder "rails server.exe" ?
im ersten fall würde dann das binary rails.exe mit dem parameter server aufgerufen das es laut usage aber nicht gibt ... wenn das binary aber nunr wirklich "rails server.exe" heißt dann muss man "rails server" auch in anführungszeichen setzen ... aber ich finde es schon sehr peinlich und n verdammt schlechtes design einer datei als namen ein leerzeichen zu verpassen .... genau so wenig halte ich von kompletten ordner-bäumen in denen ein verzeichnis ein leerzeichen enthält *wie z.b. ab vista oder einem US-windows "C:\Program Files" ... das ist einfach nur schlechtes design.


----------



## tsbmusic (30. April 2011)

Funktioniert das auch mit Git?


----------



## Matthias Reitinger (30. April 2011)

KaiBone hat gesagt.:


> Das muss man nicht zwangsläufig. Man kann auch einfach den  /d Befehl bei cd nutzen.
> 
> 
> 
> ...


So ist es natürlich schöner. Der Effekt ist aber derselbe: das Laufwerk wird gewechselt, und das muss man in diesem Fall zwangsläufig tun.



SPiKEe hat gesagt.:


> Ist euch vielleicht mal der Fehler am command aufgefallen ?
> Heißt das Server-Binary nun nur rails.exe oder "rails server.exe" ?


Weder noch. Es wird die Batchdatei rails.bat aufgerufen. Der Aufruf rails server stimmt schon so.

Grüße,
Matthias


----------



## tsbmusic (30. April 2011)

Also wenn ich das jetzt probiere steht da das keine sqlite.dll gefunden werden kann. Wie kann ich die denn installieren?


----------



## Matthias Reitinger (30. April 2011)

tsbmusic hat gesagt.:


> Also wenn ich das jetzt probiere steht da das keine sqlite.dll gefunden werden kann. Wie kann ich die denn installieren?


Probier es mal mit

```
gem install sqlite3
```
Es sollte eine Meldung über die verwendete sqlite-Version ausgegeben werden, inkl. Link für den Download der DLL:

```
=============================================================================

  You've installed the binary version of sqlite3.
  It was built using SQLite3 version 3.7.3.
  It's recommended to use the exact same version to avoid potential issues.

  At the time of building this gem, the necessary DLL files where available
  in the following download:

  http://www.sqlite.org/sqlitedll-3_7_3.zip

  You can put the sqlite3.dll available in this package in your Ruby bin
  directory, for example C:\Ruby\bin

=============================================================================
```
Die DLL entpackst du wie angegeben in das Verzeichnis bin im Installationsverzeichnis von Ruby.

Grüße,
Matthias


----------



## tsbmusic (30. April 2011)

Ich hätte da nochmal ne Frage: Kann man auch irgendwie ein Theme erstellen so das man nicht immer den Header und Footer neu machen muss?


----------



## Parantatatam (30. April 2011)

Ja. Das nennt sich Layout und ist möglich.


----------



## tsbmusic (30. April 2011)

Ja ähm und wie?


----------



## Matthias Reitinger (30. April 2011)

Wie wäre es mit etwas Eigenintiative? Die passenden Suchbegriffe hast du, jetzt musst du damit nur noch eine Suchmaschine füttern. Wenn dann konkrete Fragen bei der Umsetzung auftreten, kannst du sie gerne stellen.


----------

