2011-01-08 15 views
5

Vorrei creare un piccolo social network usando Ruby on Rails 3. Poiché si tratta di un sistema complesso, cosa è raccomandato per l'architettura dell'informazione?Sviluppo di un social network: suggerimenti, dettagli e informazioni

Ho pensato di creare più applicazioni RoR con un'architettura gerarchica, ciascuna utilizzata per raggiungere uno scopo specifico. Pertanto ho creato un dominio e più sottodomini.

Ad esempio:

dominio principale: http://main.com

Tutti i sottodomini nedded: http://app1.main.com, http://app2.main.com, ...

Un problema che si verifica utilizzando questo tipo di architettura è l'autenticazione degli utenti, poiché, mentre si imposta il cookie al livello http://main.com (in modo che tutti i cookie siano accessibili da tutti i sottodomini), non vengono "seguiti" quando provo a effettuare chiamate HTTP GET tra sottodomini, a meno che si passano esplicitamente i valori dei parametri dei cookie nella chiamata HTTP GET, magari usando una connessione SSL/TSL. È un approccio corretto?

Tuttavia, in questo caso, posso pensare di utilizzare le API REST e un protocollo OAuth come per proteggere le risorse ...

Qual è il modo giusto per creare un Social Network? Qualcuno mi può consigliare abbastanza dettagliato?

P.S .: è corretto quello che sto dicendo ?!

risposta

5

si potrebbe anche guardare Diaspora è un social network completamente caratterizzata e hanno reso il codice sorgente disponibile su GitHub! https://github.com/diaspora/diaspora

+0

è difficile (o saggio) per sventrare diaspora e fare un clone linkedin basate su di esso? –

+0

Penso che non sia saggio farlo (ma imparerai molto). Dovresti crearlo da zero guidato da test (Test Driven). Usa le gemme di scaffale come adware per autenticare i tuoi utenti. Quindi potresti dare un'occhiata alla diaspora su come implementare certe caratteristiche sociali. Quindi scrivi i test per queste funzionalità e prova a implementarle utilizzando il tuo modello di dati personalizzato, ecc. Ma se davvero non hai la minima idea, dai un'occhiata a Diaspora e al suo funzionamento interno per avere un'idea migliore su come iniziare :) –

Problemi correlati