NICOLÁS BOTTARINI
Social Network

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:

  1. Aplicación de consola.
  2. Web: una API y un frontend en React.
  3. Persistencia, con migraciones de la base de datos y tests de integración.
  4. Despliegue en la nube.
  5. Aplicación mobile.

Créditos