
Social Network
Construí una red social tipo X, desde la consola hasta la web y mobile
Nivel:Experto
Duración:Larga
Temas:
TDDClean CodeOOPDiseñoSOLIDOutside-InDDDArquitectura
Implementá una red social por consola (parecida a X) que cumpla con los escenarios de abajo.
Es el proyecto final de la ruta de aprendizaje: una aplicación completa donde aplicás todo junto.
Escenarios
Registro y login
Los usuarios se pueden registrar e iniciar sesión.
Comandos:
signup [@user] [password]
login [@user] [password]
logout
Ejemplos:
> signup @alice 1234
> signup @bob 5678
> signup @alice 1234
ERROR: User @alice already exists
> login @alice 777
ERROR: Invalid credentials for @alice
> login @alice 1234
Logged in as @alice!
@alice> login @bob 5678
Logged in as @bob!
@bob> logout
Logged out!
> asdasd
ERROR: Invalid command asdasd
> login @charlie 1234
ERROR: Invalid credentials for @charlie // We hide the fact that charlie doesn't exist
Publicar
Los usuarios pueden publicar mensajes en su timeline.
Comandos:
post [message]
Ejemplos:
@alice> post I love the weather today
@bob> post Damn! We lost!
@bob> post Good game though.
@alice> post
ERROR: Empty message
> post some message
ERROR: User must be logged in to post messages
Leer
Los usuarios pueden ver el timeline de otros usuarios.
Comandos:
read [@user]
Ejemplos:
@bob> read @alice
- I love the weather today (5 minutes ago)
@charlie> read @bob
- Good game though. (1 minute ago)
- Damn! We lost! (2 minutes ago)
@charlie> read @bobbb
ERROR: Unknown user @bobbb
@charlie> read
ERROR: Must specify a user
Seguir
Los usuarios pueden seguir el timeline de otros usuarios y ver una lista que junta los mensajes de todos los que siguen.
Comandos:
follow [@user]
unfollow [@user]
following [@user]
followers [@user]
wall
Ejemplos:
@alice> follow @bob
@alice> follow @charlie
@alice> wall
- @charlie: I'm in New York today! Does anyone want to have a coffee? (2 seconds ago)
- @bob: Good game though. (1 minute ago)
- @bob: Damn! We lost! (2 minutes ago)
@alice> follow @charlie
ERROR: already following @charlie
@alice> following @alice
- @bob
- @charlie
@alice> followers @bob
- @alice
@alice> unfollow @bob
@alice> wall
- @charlie: I'm in New York today! Does anyone want to have a coffee? (2 seconds ago)
Iteraciones
En el programa de apprenticeship el proyecto crecía por etapas, sobre el mismo dominio:
- Aplicación de consola.
- Web: una API y un frontend en React.
- Persistencia, con migraciones de la base de datos y tests de integración.
- Despliegue en la nube.
- Aplicación mobile.
Créditos
- The Social Networking Kata, creada en la London Software Craftsmanship Community.
- Codurance