diff --git a/Amistad.class b/Amistad.class new file mode 100644 index 0000000..88dcb87 Binary files /dev/null and b/Amistad.class differ diff --git a/Amistad.ctxt b/Amistad.ctxt new file mode 100644 index 0000000..b0a1f50 --- /dev/null +++ b/Amistad.ctxt @@ -0,0 +1,13 @@ +#BlueJ class context +comment0.target=Amistad +comment0.text=\r\n\ En\ esta\ clase\ se\ mantienen\ los\ usuarios\r\n\ y\ se\ crea\ la\ relaci\u00F3n\ entre\ estos.\r\n\ \r\n\ @author\ Esteban\ Vergara\ Giraldo\r\n\ @author\ John\ Alejandro\ Gonzales\r\n\ @author\ Andres\ Julian\ Gil\ Nagles\r\n\ @version\ 2\r\n +comment1.params=usuario1\ usuario2 +comment1.target=Amistad(java.lang.String,\ java.lang.String) +comment1.text=\r\n\ Constructor\r\n\ Se\ crea\ una\ amistad\ con\ los\ usuarios\ ingresados.\r\n\ @param\ usuario1\ Usuario\ que\ tiene\ amistad\ con\ usuario2\r\n\ @param\ usuario2\ El\ usuario\ amigo\ del\ usuario1\r\n +comment2.params= +comment2.target=java.lang.String\ getUsuario1() +comment2.text=\r\n\ Se\ retorna\ el\ usuario\ que\ intent\u00F3\ crear\ la\ amistad\ inicialmente\r\n\ @return\ Uno\ de\ los\ usuarios\ de\ la\ amistad,\ quien\ envi\u00F3\ la\ solicitud\ hace\ tiempo\r\n +comment3.params= +comment3.target=java.lang.String\ getUsuario2() +comment3.text=\r\n\ Se\ retorna\ el\ usuario\ objetivo\ de\ la\ amistad\ de\ usuario1\r\n\ @return\ El\ otro\ usuario\ de\ la\ amistad,\ quien\ acept\u00F3\ la\ solicitud\r\n +numComments=4 diff --git a/Amistad.java b/Amistad.java new file mode 100644 index 0000000..c4290c1 --- /dev/null +++ b/Amistad.java @@ -0,0 +1,42 @@ + +/** + * En esta clase se mantienen los usuarios + * y se crea la relación entre estos. + * + * @author Esteban Vergara Giraldo + * @author John Alejandro Gonzales + * @author Andres Julian Gil Nagles + * @version 2 + */ +public class Amistad +{ + private String usuario1; + private String usuario2; + + /** + * Constructor + * Se crea una amistad con los usuarios ingresados. + * @param usuario1 Usuario que tiene amistad con usuario2 + * @param usuario2 El usuario amigo del usuario1 + */ + public Amistad(String usuario1, String usuario2) { + this.usuario1 = usuario1; + this.usuario2 = usuario2; + } + + /** + * Se retorna el usuario que intentó crear la amistad inicialmente + * @return Uno de los usuarios de la amistad, quien envió la solicitud hace tiempo + */ + public String getUsuario1() { + return usuario1; + } + + /** + * Se retorna el usuario objetivo de la amistad de usuario1 + * @return El otro usuario de la amistad, quien aceptó la solicitud + */ + public String getUsuario2() { + return usuario2; + } +} diff --git a/ColeccionAmistades.class b/ColeccionAmistades.class new file mode 100644 index 0000000..25267a4 Binary files /dev/null and b/ColeccionAmistades.class differ diff --git a/ColeccionAmistades.ctxt b/ColeccionAmistades.ctxt new file mode 100644 index 0000000..f5deecb --- /dev/null +++ b/ColeccionAmistades.ctxt @@ -0,0 +1,19 @@ +#BlueJ class context +comment0.target=ColeccionAmistades +comment0.text=\r\n\ En\ esta\ clase\ se\ maneja\ la\ colecci\u00F3n\ de\ todas\ las\ relaciones\ de\r\n\ amistad\ que\ hay\ entre\ los\ usuarios\ inscritos\ en\ la\ aplicaci\u00F3n.\r\n\ \r\n\ @author\ Esteban\ Vergara\ Giraldo\ \ \r\n\ @author\ John\ Alejandro\ Gonzales\r\n\ @author\ Andres\ Julian\ Gil\ Nagles\r\n\ @version\ 7\r\n +comment1.params= +comment1.target=ColeccionAmistades() +comment1.text=\r\n\ Constructor,\r\n\ Se\ asigna\ memoria\ al\ nuevo\ ArrayList\ y\ se\ recuperan\ las\ amistades\ antiguas.\r\n +comment2.params=amistad +comment2.target=boolean\ agregarAmistad(Amistad) +comment2.text=\r\n\ Se\ agrega\ una\ amistad.\ Se\ presume\ que\ ya\ se\ ha\ chequeado\ y\ no\ existe\r\n\ @param\ amistad\ Referencia\ a\ la\ nueva\ amistad\ que\ se\ trata\ de\ agregar\r\n\ @return\ true\ si\ se\ pudo\ agregar\ la\ amistad,\ false\ de\ lo\ contrario\r\n +comment3.params=usuario1\ usuario2 +comment3.target=boolean\ buscarAmistad(java.lang.String,\ java.lang.String) +comment3.text=\r\n\ Se\ busca\ si\ la\ amistad\ ya\ existe\ en\ la\ colecci\u00F3n\ o\ no.\r\n\ @param\ usuario1\ Usuario\ que\ quiere\ ver\ si\ tiene\ amistad\ con\ usuario2\r\n\ @param\ usuario2\ El\ usuario\ objetivo\ del\ usuario1\r\n\ @return\ Si\ la\ amistad\ existe,\ se\ retorna\ true,\ de\ lo\ contrario\r\n\ se\ retorna\ false\r\n +comment4.params=usuario +comment4.target=java.util.ArrayList\ getAmistadesDeUnUsuario(java.lang.String) +comment4.text=\r\n\ Se\ buscan\ todas\ las\ amistades\ de\ un\ usuario\r\n\ @param\ usuario\ El\ usuario\ objetivo\r\n\ @return\ Un\ arraylist\ con\ los\ nombres\ de\ sus\ amigos\r\n +comment5.params=usuario +comment5.target=void\ imprimirAmistades(java.lang.String) +comment5.text=\r\n\ Para\ imprimir\ los\ usernames\ de\ los\ amigos\ de\ un\ usuario.\r\n\ @param\ usuario\ El\ usuario\ objetivo\r\n +numComments=6 diff --git a/ColeccionAmistades.java b/ColeccionAmistades.java new file mode 100644 index 0000000..b92161e --- /dev/null +++ b/ColeccionAmistades.java @@ -0,0 +1,120 @@ +import java.util.*; +import java.io.*; +/** + * En esta clase se maneja la colección de todas las relaciones de + * amistad que hay entre los usuarios inscritos en la aplicación. + * + * @author Esteban Vergara Giraldo + * @author John Alejandro Gonzales + * @author Andres Julian Gil Nagles + * @version 7 + */ +public class ColeccionAmistades +{ + /** + * ArrayList donde se almacenan las referencias a los + * pares de usuarios que se han hecho amigos + */ + protected ArrayList amistades; + + /** + * Constructor, + * Se asigna memoria al nuevo ArrayList y se recuperan las amistades antiguas. + */ + public ColeccionAmistades() throws FileNotFoundException,IOException { + amistades = new ArrayList<>(); + File amistadesFile = new File("amistadesFile.txt"); + if(!amistadesFile.exists()){ amistadesFile.createNewFile();} + Scanner scan = new Scanner(amistadesFile); + while(scan.hasNextLine()) { + String linea = scan.nextLine(); + Scanner scannerLinea = new Scanner(linea); + scannerLinea.useDelimiter(","); + String usuario1 = scannerLinea.next(); + String usuario2 = scannerLinea.next(); + Amistad a = new Amistad(usuario1, usuario2); + amistades.add(a); + scannerLinea.close(); + } + scan.close(); + } + + /** + * Se agrega una amistad. Se presume que ya se ha chequeado y no existe + * @param amistad Referencia a la nueva amistad que se trata de agregar + * @return true si se pudo agregar la amistad, false de lo contrario + */ + public boolean agregarAmistad(Amistad amistad) throws FileNotFoundException,IOException{ + File archivo = new File("amistadesFile.txt"); + PrintWriter out = new PrintWriter(new FileWriter(archivo, true)); + out.println(amistad.getUsuario1()+","+amistad.getUsuario2()); + out.close(); + return amistades.add(amistad); + } + + /** + * Se busca si la amistad ya existe en la colección o no. + * @param usuario1 Usuario que quiere ver si tiene amistad con usuario2 + * @param usuario2 El usuario objetivo del usuario1 + * @return Si la amistad existe, se retorna true, de lo contrario + * se retorna false + */ + public boolean buscarAmistad(String usuario1, String usuario2) { + for(Amistad a: amistades) { + if(a.getUsuario1().equals(usuario1) && a.getUsuario2().equals(usuario2)) { + return true; + } + if(a.getUsuario1().equals(usuario2) && a.getUsuario2().equals(usuario1)) { + return true; + } + } + return false; + } + + /** + * Se buscan todas las amistades de un usuario + * @param usuario El usuario objetivo + * @return Un arraylist con los nombres de sus amigos + */ + public ArrayList getAmistadesDeUnUsuario(String usuario) { + ArrayList seleccionadas = new ArrayList<>(); + for(Amistad a: amistades) { + if(a.getUsuario1().equals(usuario)) { + seleccionadas.add(a.getUsuario2()); + } + if(a.getUsuario2().equals(usuario)) { + seleccionadas.add(a.getUsuario1()); + } + } + return seleccionadas; + } + + /** + * Para imprimir los usernames de los amigos de un usuario. + * @param usuario El usuario objetivo + */ + public void imprimirAmistades(String usuario) { + ArrayList seleccionadas = new ArrayList<>(); + for(Amistad a: amistades) { + if(a.getUsuario1().equals(usuario)) { + seleccionadas.add(a.getUsuario2()); + } + if(a.getUsuario2().equals(usuario)) { + seleccionadas.add(a.getUsuario1()); + } + } + if(seleccionadas.size() == 0){ + System.out.println("\n" + "Aún no tienes amigos :(" + "\n"); + System.out.println("¡Facebook es más divertido con amigos!,"); + System.out.println("envíale a alguien una SOLICITUD DE AMISTAD (función 2)."); + }else{ + String conjugacion = " amigos!:"; + if(seleccionadas.size() == 1){conjugacion = " amigo!:";} + System.out.println(); + System.out.println("¡Tienes " + seleccionadas.size() + conjugacion); + for(String a: seleccionadas) { + System.out.println("- " + a); + } + } + } +} diff --git a/ColeccionPublicaciones.class b/ColeccionPublicaciones.class new file mode 100644 index 0000000..f4c5f15 Binary files /dev/null and b/ColeccionPublicaciones.class differ diff --git a/ColeccionPublicaciones.ctxt b/ColeccionPublicaciones.ctxt new file mode 100644 index 0000000..866bd02 --- /dev/null +++ b/ColeccionPublicaciones.ctxt @@ -0,0 +1,16 @@ +#BlueJ class context +comment0.target=ColeccionPublicaciones +comment0.text=\r\n\ En\ esta\ clase\ se\ maneja\ la\ colecci\u00F3n\ de\ las\ publicaciones\r\n\ que\ han\ hecho\ todos\ los\ usuarios.\r\n\ \r\n\ @author\ Esteban\ Vergara\ Giraldo\r\n\ @author\ John\ Alejandro\ Gonzales\r\n\ @author\ Andres\ Julian\ Gil\ Nagles\r\n\ @version\ 7\r\n +comment1.params= +comment1.target=ColeccionPublicaciones() +comment1.text=\r\n\ Constructor,\r\n\ Se\ asigna\ memoria\ al\ nuevo\ ArrayList\ y\ se\ recuperan\ las\ publicaciones\ antiguas.\r\n +comment2.params=p +comment2.target=boolean\ agregarPublicacion(Publicacion) +comment2.text=\r\n\ Se\ agrega\ una\ publicaci\u00F3n.\ Aunque\ sean\ una\ nueva\ publicaci\u00F3n,\ puede\ \r\n\ tener\ el\ mismo\ contenido\ que\ alguna\ anterior\r\n\ @param\ p\ Referencia\ a\ la\ nueva\ publicaci\u00F3n\ que\ se\ trata\ de\ agregar\r\n\ @return\ true\ si\ se\ pudo\ agregar\ la\ publicaci\u00F3n,\ false\ de\ lo\ contrario\r\n +comment3.params=usuario +comment3.target=java.util.ArrayList\ getPublicacionesDeUnUsuario(java.lang.String) +comment3.text=\r\n\ Se\ buscan\ las\ publicaciones\ del\ usuario\ ingresado\ (recientes\ primero)\r\n\ @param\ usuario\ Usuario\ al\ que\ se\ le\ buscan\ las\ publicaciones\r\n\ @return\ Retorna\ un\ ArrayList\ con\ todas\ las\ publicaciones\ que\ ha\ hecho\r\n\ comenzando\ con\ las\ recientes,\ puede\ estar\ vac\u00EDo\ si\ no\ ha\ hecho\ una\ a\u00FAn.\r\n +comment4.params=usuario +comment4.target=void\ imprimirPublicaciones(java.lang.String) +comment4.text=\r\n\ Imprime\ las\ publicaciones\ del\ usuario\ ingresado\ (recientes\ primero).\r\n\ Imprime\ el\ ArrayList\ de\ todas\ las\ publicaciones\ que\ ha\ hecho\ comenzando\r\n\ con\ las\ recientes,\ es\ capaz\ de\ informar\ si\ no\ ha\ publicado\ nada\ a\u00FAn.\r\n\ @param\ usuario\ Usuario\ al\ que\ se\ le\ imprimir\u00E1n\ las\ publicaciones\r\n +numComments=5 diff --git a/ColeccionPublicaciones.java b/ColeccionPublicaciones.java new file mode 100644 index 0000000..ec7cadb --- /dev/null +++ b/ColeccionPublicaciones.java @@ -0,0 +1,97 @@ +import java.util.*; +import java.io.*; +/** + * En esta clase se maneja la colección de las publicaciones + * que han hecho todos los usuarios. + * + * @author Esteban Vergara Giraldo + * @author John Alejandro Gonzales + * @author Andres Julian Gil Nagles + * @version 7 + */ +public class ColeccionPublicaciones +{ + /** + * ArrayList donde se almacenan las publicaciones hechas por todos los usuarios + */ + protected ArrayList publicaciones; + + /** + * Constructor, + * Se asigna memoria al nuevo ArrayList y se recuperan las publicaciones antiguas. + */ + public ColeccionPublicaciones() throws FileNotFoundException,IOException{ + publicaciones = new ArrayList<>(); + File publicacionesFile = new File("publicacionesFile.txt"); + if(!publicacionesFile.exists()){ publicacionesFile.createNewFile();} + Scanner scan = new Scanner(publicacionesFile); + while(scan.hasNextLine()) { + String linea = scan.nextLine(); + Scanner scannerLinea = new Scanner(linea); + scannerLinea.useDelimiter("/"); + String usuario = scannerLinea.next(); + String texto = scannerLinea.next(); + String fechaHora = scannerLinea.next(); + Publicacion p = new Publicacion(usuario, texto, fechaHora); + publicaciones.add(p); + scannerLinea.close(); + } + scan.close(); + } + + /** + * Se agrega una publicación. Aunque sean una nueva publicación, puede + * tener el mismo contenido que alguna anterior + * @param p Referencia a la nueva publicación que se trata de agregar + * @return true si se pudo agregar la publicación, false de lo contrario + */ + public boolean agregarPublicacion(Publicacion p) throws IOException{ + File archivo = new File("publicacionesFile.txt"); + PrintWriter out = new PrintWriter(new FileWriter(archivo, true)); + out.println(p.getUsuario()+"/"+p.getTexto()+"/"+p.getFechaHora()); + out.close(); + return publicaciones.add(p); + } + + /** + * Se buscan las publicaciones del usuario ingresado (recientes primero) + * @param usuario Usuario al que se le buscan las publicaciones + * @return Retorna un ArrayList con todas las publicaciones que ha hecho + * comenzando con las recientes, puede estar vacío si no ha hecho una aún. + */ + public ArrayList getPublicacionesDeUnUsuario(String usuario) { + ArrayList seleccionadas = new ArrayList<>(); + for(Publicacion p: publicaciones) { + if(p.getUsuario().equals(usuario)) { + seleccionadas.add(p); + } + } + ArrayList seleccionadasRecientes = new ArrayList<>(seleccionadas.size()); + for(int i = seleccionadas.size(); i > 0 ; i-- ){ + seleccionadasRecientes.add(seleccionadas.get(i-1)); + } + return seleccionadasRecientes; + } + + /** + * Imprime las publicaciones del usuario ingresado (recientes primero). + * Imprime el ArrayList de todas las publicaciones que ha hecho comenzando + * con las recientes, es capaz de informar si no ha publicado nada aún. + * @param usuario Usuario al que se le imprimirán las publicaciones + */ + public void imprimirPublicaciones(String usuario) { + ArrayList seleccionadas = getPublicacionesDeUnUsuario(usuario); + if(seleccionadas.size() == 0){ + System.out.println(usuario + " no ha publicado nada aún."); + }else{ + int i = 1; + System.out.println("Las publicaciones de " + usuario + "(recientes primero): "); + for(Publicacion p: seleccionadas) { + System.out.println(); + System.out.println(i + ". " + p.getFechaHora()); + System.out.println(" - " + p.getTexto()); + i++; + } + } + } +} diff --git a/ColeccionSolicitudes.class b/ColeccionSolicitudes.class new file mode 100644 index 0000000..03071c8 Binary files /dev/null and b/ColeccionSolicitudes.class differ diff --git a/ColeccionSolicitudes.ctxt b/ColeccionSolicitudes.ctxt new file mode 100644 index 0000000..2f9e2e0 --- /dev/null +++ b/ColeccionSolicitudes.ctxt @@ -0,0 +1,16 @@ +#BlueJ class context +comment0.target=ColeccionSolicitudes +comment0.text=\r\n\ En\ esta\ clase\ se\ maneja\ la\ colecci\u00F3n\ de\ todas\ las\ solicitudes\ de\r\n\ amistad\ que\ hay\ entre\ los\ usuarios\ inscritos\ en\ la\ aplicaci\u00F3n.\r\n\ \r\n\ @author\ Esteban\ Vergara\ Giraldo\ \ \r\n\ @author\ John\ Alejandro\ Gonzales\r\n\ @author\ Andres\ Julian\ Gil\ Nagles\r\n\ @version\ 4\r\n +comment1.params= +comment1.target=ColeccionSolicitudes() +comment1.text=\r\n\ Constructor,\r\n\ Se\ asigna\ memoria\ al\ nuevo\ ArrayList\ y\ se\ recuperan\ las\ solicitudes\ antiguas.\r\n +comment2.params=solicitud +comment2.target=boolean\ agregarSolicitud(Solicitud) +comment2.text=\r\n\ Se\ agrega\ una\ solicitud.\ Se\ presume\ que\ ya\ se\ ha\ chequeado\ y\ no\ existe\r\n\ @param\ solicitud\ Referencia\ a\ la\ nueva\ solicitud\ que\ se\ trata\ de\ agregar\r\n\ @return\ true\ si\ se\ pudo\ agregar\ la\ solicitud,\ false\ de\ lo\ contrario\r\n +comment3.params=usuario1\ usuario2 +comment3.target=boolean\ buscarSolicitud(java.lang.String,\ java.lang.String) +comment3.text=\r\n\ Se\ busca\ si\ la\ solicitud\ ya\ existe\ en\ la\ colecci\u00F3n\ o\ no.\r\n\ @param\ usuario1\ Usuario\ que\ quiere\ ver\ si\ tiene\ solicitud\ con\ usuario2\r\n\ @param\ usuario2\ El\ usuario\ objetivo\ del\ usuario1\r\n\ @return\ Si\ la\ solicitud\ existe,\ se\ retorna\ true,\ de\ lo\ contrario\r\n\ se\ retorna\ false\r\n +comment4.params=usuario\ amistades +comment4.target=void\ imprimirSolicitudes(java.lang.String,\ java.util.ArrayList) +comment4.text=\r\n\ Para\ imprimir\ los\ usernames\ de\ los\ que\ le\ han\ enviado\ una\ solicitud\r\n\ de\ amistad\ a\ un\ usuario\ en\ espec\u00EDfico.\r\n\ @param\ usuario\ El\ usuario\ objetivo\ a\ quien\ le\ han\ mandado\ las\ solicitudes\r\n\ @param\ amistades\ Un\ Arraylist\ con\ los\ usernames\ de\ los\ que\ ya\ son\ sus\ amigos\r\n +numComments=5 diff --git a/ColeccionSolicitudes.java b/ColeccionSolicitudes.java new file mode 100644 index 0000000..87a64b5 --- /dev/null +++ b/ColeccionSolicitudes.java @@ -0,0 +1,103 @@ +import java.util.*; +import java.io.*; +/** + * En esta clase se maneja la colección de todas las solicitudes de + * amistad que hay entre los usuarios inscritos en la aplicación. + * + * @author Esteban Vergara Giraldo + * @author John Alejandro Gonzales + * @author Andres Julian Gil Nagles + * @version 4 + */ +public class ColeccionSolicitudes +{ + /** + * ArrayList donde se almacenan las referencias a los + * pares de usuarios que se han enviado solicitud de amistad + */ + protected ArrayList solicitudes; + + /** + * Constructor, + * Se asigna memoria al nuevo ArrayList y se recuperan las solicitudes antiguas. + */ + public ColeccionSolicitudes() throws FileNotFoundException,IOException { + solicitudes = new ArrayList<>(); + File solicitudesFile = new File("solicitudesFile.txt"); + if(!solicitudesFile.exists()){ solicitudesFile.createNewFile();} + Scanner scan = new Scanner(solicitudesFile); + while(scan.hasNextLine()) { + String linea = scan.nextLine(); + Scanner scannerLinea = new Scanner(linea); + scannerLinea.useDelimiter(","); + String usuario1 = scannerLinea.next(); + String usuario2 = scannerLinea.next(); + Solicitud a = new Solicitud(usuario1, usuario2); + solicitudes.add(a); + scannerLinea.close(); + } + scan.close(); + } + + /** + * Se agrega una solicitud. Se presume que ya se ha chequeado y no existe + * @param solicitud Referencia a la nueva solicitud que se trata de agregar + * @return true si se pudo agregar la solicitud, false de lo contrario + */ + public boolean agregarSolicitud(Solicitud solicitud) throws FileNotFoundException,IOException{ + File archivo = new File("solicitudesFile.txt"); + PrintWriter out = new PrintWriter(new FileWriter(archivo, true)); + out.println(solicitud.getUsuario1()+","+solicitud.getUsuario2()); + out.close(); + return solicitudes.add(solicitud); + } + + /** + * Se busca si la solicitud ya existe en la colección o no. + * @param usuario1 Usuario que quiere ver si tiene solicitud con usuario2 + * @param usuario2 El usuario objetivo del usuario1 + * @return Si la solicitud existe, se retorna true, de lo contrario + * se retorna false + */ + public boolean buscarSolicitud(String usuario1, String usuario2) { + for(Solicitud a: solicitudes) { + if(a.getUsuario1().equals(usuario1) && a.getUsuario2().equals(usuario2)) { + return true; + } + } + return false; + } + + /** + * Para imprimir los usernames de los que le han enviado una solicitud + * de amistad a un usuario en específico. + * @param usuario El usuario objetivo a quien le han mandado las solicitudes + * @param amistades Un Arraylist con los usernames de los que ya son sus amigos + */ + public void imprimirSolicitudes(String usuario, ArrayList amistades) { + ArrayList seleccionadas = new ArrayList<>(); + for(Solicitud s: solicitudes) { + if(s.getUsuario2().equals(usuario)) { + boolean esAmigo = false; + for(String a: amistades){ + if(s.getUsuario1().equals(a)){ + esAmigo = true; + } + } + if(esAmigo == false){ + seleccionadas.add(s.getUsuario1()); + } + } + } + if(seleccionadas.size() == 0){ + System.out.println("No tienes solicitudes que aceptar :("); + }else{ + String conjugacion = " usuarios te han "; + if(seleccionadas.size() == 1){conjugacion = " usuario te ha ";} + System.out.println("¡"+seleccionadas.size() + conjugacion + "enviado solicitud de amistad!:"); + for(String s: seleccionadas) { + System.out.println("- " + s); + } + } + } +} diff --git a/ColeccionUsuarios.class b/ColeccionUsuarios.class new file mode 100644 index 0000000..69e464e Binary files /dev/null and b/ColeccionUsuarios.class differ diff --git a/ColeccionUsuarios.ctxt b/ColeccionUsuarios.ctxt new file mode 100644 index 0000000..08cac0c --- /dev/null +++ b/ColeccionUsuarios.ctxt @@ -0,0 +1,16 @@ +#BlueJ class context +comment0.target=ColeccionUsuarios +comment0.text=\r\n\ En\ esta\ clase\ se\ maneja\ la\ colecci\u00F3n\ de\ los\ usuarios\ que\ se\ han\r\n\ inscrito\ en\ la\ aplicaci\u00F3n.\r\n\ \r\n\ @author\ Esteban\ Vergara\ Giraldo\ \r\n\ @author\ John\ Alejandro\ Gonzales\r\n\ @author\ Andres\ Julian\ Gil\ Nagles\r\n\ @version\ 10\r\n +comment1.params= +comment1.target=ColeccionUsuarios() +comment1.text=\r\n\ Constructor\r\n\ Se\ asigna\ memoria\ al\ nuevo\ ArrayList\ y\ se\ recuperan\ los\ usuarios\ antiguos\r\n +comment2.params=usuario +comment2.target=boolean\ agregarUsuario(Usuario) +comment2.text=\r\n\ Se\ agrega\ un\ usuario.\ Se\ presume\ que\ ya\ se\ ha\ chequeado\ y\ no\ existe\r\n\ @param\ usuario\ Referencia\ al\ nuevo\ usuario\ que\ se\ trata\ de\ agregar\r\n\ @return\ true\ si\ se\ pudo\ agregar\ el\ usuario,\ false\ de\ lo\ contrario\r\n +comment3.params=usuarioBuscado +comment3.target=Usuario\ buscarUsuario(java.lang.String) +comment3.text=\r\n\ Se\ busca\ si\ el\ usuario\ ya\ existe\ en\ la\ colecci\u00F3n\ o\ no.\r\n\ @param\ usuarioBuscado\ Usuario\ que\ se\ trata\ de\ agregar\r\n\ @return\ Si\ el\ usuario\ existe,\ se\ returna\ la\ referencia,\ de\ lo\ contrario\r\n\ se\ retorna\ null\r\n +comment4.params=usuario\ clave +comment4.target=Usuario\ buscarUsuarioClave(java.lang.String,\ java.lang.String) +comment4.text=\r\n\ Buscar\ si\ el\ usuario\ y\ clave\ que\ digita\ el\ usuario\ son\ v\u00E1lidos\r\n\ @param\ usuario\ usuario\ que\ ingresa\ el\ usuario\r\n\ @param\ clave\ clave\ que\ ingresa\ el\ usuario\r\n\ @return\ Se\ retorna\ la\ referencia\ del\ usuario\ que\ tenga\ ese\r\n\ nickname\ y\ esa\ contrase\u00F1a.\ Si\ nadie\ los\ tiene,\ se\ retorna\ null\r\n +numComments=5 diff --git a/ColeccionUsuarios.java b/ColeccionUsuarios.java new file mode 100644 index 0000000..1ceaf77 --- /dev/null +++ b/ColeccionUsuarios.java @@ -0,0 +1,85 @@ +import java.util.*; +import java.io.*; +/** + * En esta clase se maneja la colección de los usuarios que se han + * inscrito en la aplicación. + * + * @author Esteban Vergara Giraldo + * @author John Alejandro Gonzales + * @author Andres Julian Gil Nagles + * @version 10 + */ +public class ColeccionUsuarios +{ + /** + * ArrayList donde se almacenan las referencias a los usuarios + */ + protected ArrayList usuarios; + + /** + * Constructor + * Se asigna memoria al nuevo ArrayList y se recuperan los usuarios antiguos + */ + public ColeccionUsuarios() throws FileNotFoundException, IOException { + usuarios = new ArrayList<>(); + File usuariosFile = new File("usuariosFile.txt"); + if(!usuariosFile.exists()){ usuariosFile.createNewFile();} + Scanner scan = new Scanner(usuariosFile); + while(scan.hasNextLine()) { + String linea = scan.nextLine(); + Scanner scannerLinea = new Scanner(linea); + scannerLinea.useDelimiter(","); + String usuario = scannerLinea.next(); + String clave = scannerLinea.next(); + String nombreCompleto = scannerLinea.next(); + Usuario u = new Usuario(usuario, clave, nombreCompleto); + usuarios.add(u); + scannerLinea.close(); + } + scan.close(); + } + + /** + * Se agrega un usuario. Se presume que ya se ha chequeado y no existe + * @param usuario Referencia al nuevo usuario que se trata de agregar + * @return true si se pudo agregar el usuario, false de lo contrario + */ + public boolean agregarUsuario(Usuario usuario) throws IOException{ + File archivo = new File("usuariosFile.txt"); + PrintWriter out = new PrintWriter(new FileWriter(archivo, true)); + out.println(usuario.getUsuario()+","+usuario.getClave()+","+usuario.getNombreCompleto()); + out.close(); + return usuarios.add(usuario); + } + + /** + * Se busca si el usuario ya existe en la colección o no. + * @param usuarioBuscado Usuario que se trata de agregar + * @return Si el usuario existe, se returna la referencia, de lo contrario + * se retorna null + */ + public Usuario buscarUsuario(String usuarioBuscado) { + for(Usuario u: usuarios) { + if(u.getUsuario().equals(usuarioBuscado)) { + return u; + } + } + return null; + } + + /** + * Buscar si el usuario y clave que digita el usuario son válidos + * @param usuario usuario que ingresa el usuario + * @param clave clave que ingresa el usuario + * @return Se retorna la referencia del usuario que tenga ese + * nickname y esa contraseña. Si nadie los tiene, se retorna null + */ + public Usuario buscarUsuarioClave(String usuario, String clave) { + for(Usuario u: usuarios) { + if(u.getUsuario().equals(usuario) && u.getClave().equals(clave)) { + return u; + } + } + return null; + } +} diff --git a/EntrarAlSistema.class b/EntrarAlSistema.class new file mode 100644 index 0000000..deb8119 Binary files /dev/null and b/EntrarAlSistema.class differ diff --git a/EntrarAlSistema.ctxt b/EntrarAlSistema.ctxt new file mode 100644 index 0000000..cbfca1f --- /dev/null +++ b/EntrarAlSistema.ctxt @@ -0,0 +1,7 @@ +#BlueJ class context +comment0.target=EntrarAlSistema +comment0.text=\r\n\ ACCESO\ R\u00C1PIDO\ PARA\ NO\ EXPERIMENTADOS\r\n\ \r\n\ Hay\ demasiados\ metodos\ en\ Principal,\ una\ persona\ no\ muy\ experimentada\r\n\ puede\ no\ saber\ qu\u00E9\ hacer\ o\ por\ d\u00F3nde\ empezar.\r\n\ Aqu\u00ED\ hay\ s\u00F3lo\ un\ m\u00E9todo\r\n\ \r\n|Si\ eres\ de\ esas\ personas\ y\ usas\ BlueJ,\ dale\ click\ derecho\ al\ recuadro\ por\ \ |\r\n|donde\ viniste,\ se\ abrir\u00E1\ una\ pesta\u00F1a,\ clikea\ en\ "void\ main(String[]\ args)".|\r\n\ \r\n\ Realmente\ no\ era\ necesaria\ esta\ clase,\ pero\ hasta\ yo\ me\ perd\u00ED\ al\ inicio\r\n\ Hay\ un\ manual\ en\ pdf\ m\u00E1s\ detallado\ que\ fu\u00E9\ anexado\ a\ la\ entrega.\r\n\ \r\n\ @author\ Esteban\ Vergara\ Giraldo\r\n\ @author\ John\ Alejandro\ Gonzales\r\n\ @author\ Andres\ Julian\ Gil\ Nagles\r\n\ @version\ 6\r\n +comment1.params=args +comment1.target=void\ main(java.lang.String[]) +comment1.text=\r\n\ Activa\ autom\u00E1ticamente\ el\ m\u00E9todo\ main\ de\ Principal,\ el\ importante\r\n +numComments=2 diff --git a/EntrarAlSistema.java b/EntrarAlSistema.java new file mode 100644 index 0000000..e5d5267 --- /dev/null +++ b/EntrarAlSistema.java @@ -0,0 +1,28 @@ +import java.io.FileNotFoundException; +import java.io.IOException; +/** + * ACCESO RÁPIDO PARA NO EXPERIMENTADOS + * + * Hay demasiados metodos en Principal, una persona no muy experimentada + * puede no saber qué hacer o por dónde empezar. + * Aquí hay sólo un método + * + *|Si eres de esas personas y usas BlueJ, dale click derecho al recuadro por | + *|donde viniste, se abrirá una pestaña, clikea en "void main(String[] args)".| + * + * Realmente no era necesaria esta clase, pero hasta yo me perdí al inicio + * Hay un manual en pdf más detallado que fué anexado a la entrega. + * + * @author Esteban Vergara Giraldo + * @author John Alejandro Gonzales + * @author Andres Julian Gil Nagles + * @version 6 + */ +public class EntrarAlSistema +{ /** + * Activa automáticamente el método main de Principal, el importante + */ + public static void main(String [] args) throws FileNotFoundException,IOException { + Principal.main(args); + } +} diff --git a/Principal.class b/Principal.class new file mode 100644 index 0000000..7173efb Binary files /dev/null and b/Principal.class differ diff --git a/Principal.ctxt b/Principal.ctxt new file mode 100644 index 0000000..7c7f7c5 --- /dev/null +++ b/Principal.ctxt @@ -0,0 +1,43 @@ +#BlueJ class context +comment0.target=Principal +comment0.text=\r\n\ Clase\ principal\ del\ sistema,\ Desde\ aqu\u00ED\ se\ le\ pregunta\ al\ usuario\ lo\ que\r\n\ quiere\ hacer\ por\ medio\ de\ opciones\ numeradas.\r\n\ \r\n\ @author\ Esteban\ Vergara\ Giraldo\r\n\ @author\ John\ Alejandro\ Gonzales\r\n\ @author\ Andres\ Julian\ Gil\ Nagles\r\n\ @version\ 27\r\n +comment1.params=args +comment1.target=void\ main(java.lang.String[]) +comment1.text=\r\n\ El\ m\u00E9todo\ que\ inicia\ todo\ el\ proyecto,\ desde\ donde\ todo\ empieza.\r\n\ Puede\ usarse\ directamente\ desde\ esta\ clase\ o\ puede\ hacerse\ remotamente\r\n\ desde\ la\ clase\ EntrarAlSistema\r\n +comment10.params= +comment10.target=void\ menuVerAmigos() +comment10.text=\r\n\ Funci\u00F3n\ 4,\ se\ desplegar\u00E1\ una\ lista\ con\ todos\ tus\ amigos.\r\n\ Puedes\ ver\ sus\ publicaciones\ con\ la\ funci\u00F3n\ 5.\r\n +comment11.params= +comment11.target=void\ menuVerPublicacionesAmigo() +comment11.text=\r\n\ Funci\u00F3n\ 5,\ Luego\ de\ hacerte\ amigo\ de\ otro\ usuario,\ puedes\ ver\ sus\r\n\ publicaciones,\ s\u00F3lo\ tienes\ que\ escribir\ su\ username.\r\n\ Se\ confirmar\u00E1\ si\ el\ usuario\ existe\ y\ que\ no\ eres\ t\u00FA\ mismo,\r\n\ luego\ revisar\u00E1\ si\ efectivamente\ son\ amigos.\ Si\ pasa\ todos\ los\ filtros,\r\n\ mandar\u00E1\ a\ imprimir\ las\ publicaciones\ de\ tu\ amigo\ empezando\ por\ las\ recientes.\r\n +comment12.params= +comment12.target=void\ menuVerPublicacionesPropias() +comment12.text=\r\n\ Funci\u00F3n\ 6,\ Puedes\ ver\ tus\ propias\ publicaciones.\r\n\ Es\ autom\u00E1tico,\ no\ tienes\ que\ ingresar\ nada,\ se\ mandar\u00E1n\ \r\n\ a\ imprimir\ tus\ publicaciones\ empezando\ por\ las\ recientes.\r\n +comment13.params= +comment13.target=void\ easterEgg() +comment13.text=\r\n\ Funci\u00F3n\ 7,\ Just\ do\ it.\r\n +comment2.params= +comment2.target=void\ inicializarColecciones() +comment2.text=\r\n\ Instancia\ cada\ una\ de\ las\ colecciones,\ reserv\u00E1ndole\ \r\n\ espacio\ en\ memoria\ a\ sus\ arrays\ correspondientes.\r\n +comment3.params= +comment3.target=void\ menuPrincipal() +comment3.text=\r\n\ El\ primer\ men\u00FA\ que\ ve\ el\ usuario,\ sirve\ para\ crearse\r\n\ una\ cuenta\ (1)\ y\ luego\ ingresar\ al\ sistema\ con\ ella\ (2).\r\n +comment4.params= +comment4.target=void\ menuCrearUsuario() +comment4.text=\r\n\ Opci\u00F3n\ 1,\ Con\ este\ men\u00FA\ se\ crean\ cuentas\ con\ el\ username\ y\ \r\n\ contrase\u00F1a\ preferidos,\ adem\u00E1s\ de\ tu\ propio\ nombre.\r\n\ Primer\ men\u00FA\ al\ que\ debe\ ingresar\ un\ usuario\ que\ usa\ por\ primera\ vez\ el\ sistema.\r\n +comment5.params= +comment5.target=void\ menuIngresar() +comment5.text=\r\n\ Opci\u00F3n\ 2,\ Con\ este\ men\u00FA\ se\ puede\ ingresar\ al\ sistema\ con\ el\ usuario\ y\ \r\n\ contrase\u00F1a\ que\ hayas\ creado.\r\n\ Segundo\ men\u00FA\ al\ que\ debe\ ingresar\ un\ usuario\ que\ usa\ por\ primera\ vez\ el\ sistema.\r\n +comment6.params= +comment6.target=void\ menuUsuarioActivo() +comment6.text=\r\n\ Haz\ ingresado\ al\ sistema,\ desde\ aqu\u00ED\ se\ despliegan\ ciertas\ funciones\ \r\n\ numeradas\ a\ las\ que\ puedes\ acceder,\ como\ hacer\ una\ publicaci\u00F3n,\ ver\ \r\n\ las\ que\ haz\ hecho,\ agregar\ amigos,\ y\ ver\ sus\ publicaciones\ tambi\u00E9n.\r\n\ Men\u00FA\ al\ que\ se\ llega\ si\ el\ usuario\ existe\ y\ se\ \r\n\ realiza\ correctamente\ su\ ingreso\ al\ sistema.\ \r\n +comment7.params= +comment7.target=void\ menuCrearPublicacion() +comment7.text=\r\n\ Funci\u00F3n\ 1,\ Puedes\ escribir\ cualquier\ cosa,\ esto\ ser\u00E1\ publicado.\r\n\ Tus\ amigos\ y\ t\u00FA\ pueden\ ver\ tus\ publicaciones\r\n +comment8.params= +comment8.target=void\ menuPedirAmistad() +comment8.text=\r\n\ Funci\u00F3n\ 2,\ Puedes\ hacerte\ amigo\ de\ otro\ usuario,\ s\u00F3lo\ tienes\ que\ \r\n\ escribir\ su\ username\ y\ esperar\ a\ que\ te\ acepte.\r\n\ Se\ confirmar\u00E1\ si\ el\ usuario\ existe\ y\ que\ no\ eres\ t\u00FA\ mismo,\ luego\ revisar\u00E1\ si\r\n\ a\u00FAn\ no\ son\ amigos.\ Si\ pasa\ todos\ los\ filtros,\ se\ crear\u00E1\ la\ solicitud\ de\ amistad.\r\n\ \r\n\ El\ otro\ usurio\ debe\ aceptar\ la\ solicitud\ antes\ de\ poder\ ser\ amigos.\r\n +comment9.params= +comment9.target=void\ menuAceptarSolicitudes() +comment9.text=\r\n\ Funci\u00F3n\ 3,\ Desde\ aqu\u00ED\ puedes\ aceptar\ las\ solicitudes\ que\ te\ han\ enviado,\ se\ desplegar\u00E1\r\n\ una\ lista\ con\ ellas\ y\ luego\ solo\ tienes\ que\ escribir\ el\ usuario\ que\ quieras\r\n\ tener\ como\ amigo.\r\n +numComments=14 diff --git a/Principal.java b/Principal.java new file mode 100644 index 0000000..f7742ca --- /dev/null +++ b/Principal.java @@ -0,0 +1,389 @@ +import java.util.*; +import java.io.*; +/** + * Clase principal del sistema, Desde aquí se le pregunta al usuario lo que + * quiere hacer por medio de opciones numeradas. + * + * @author Esteban Vergara Giraldo + * @author John Alejandro Gonzales + * @author Andres Julian Gil Nagles + * @version 27 + */ +public class Principal +{ + /** Instancia de la colección con ArrayList de usuarios */ + protected static ColeccionUsuarios coleccionUsuarios; + /** Instancia de la colección con ArrayList de publicaciones */ + protected static ColeccionPublicaciones coleccionPublicaciones; + /** Instancia de la colección con ArrayList de solicitudes */ + protected static ColeccionSolicitudes coleccionSolicitudes; + /** Instancia de la colección con ArrayList de amistades */ + protected static ColeccionAmistades coleccionAmistades; + + /** El usuario que está actualmente utilizando el sistema. */ + protected static Usuario usuarioActivo; + + /** Función que recibe lo que escribas con el teclado. */ + protected static Scanner in = new Scanner(System.in); + + /** + * El método que inicia todo el proyecto, desde donde todo empieza. + * Puede usarse directamente desde esta clase o puede hacerse remotamente + * desde la clase EntrarAlSistema + */ + public static void main(String [] args) throws FileNotFoundException,IOException { + inicializarColecciones(); + menuPrincipal(); + } + + /** + * Instancia cada una de las colecciones, reservándole + * espacio en memoria a sus arrays correspondientes. + */ + public static void inicializarColecciones() throws FileNotFoundException,IOException { + coleccionUsuarios = new ColeccionUsuarios(); + coleccionPublicaciones = new ColeccionPublicaciones(); + coleccionSolicitudes = new ColeccionSolicitudes(); + coleccionAmistades = new ColeccionAmistades(); + } + + /** + * El primer menú que ve el usuario, sirve para crearse + * una cuenta (1) y luego ingresar al sistema con ella (2). + */ + public static void menuPrincipal() throws IOException{ + int opcion; + do { + in = new Scanner(System.in); + System.out.println("========================"); + System.out.println("1. Crear usuario"); + System.out.println("2. Ingresar al sistema"); + System.out.println("9. Salir del sistema"); + System.out.println("Por favor digite su opción"); + opcion = in.nextInt(); + switch (opcion) { + case 1: + menuCrearUsuario(); + break; + case 2: + menuIngresar(); + break; + case 9: + System.out.println("¡Adiós!, vuelve pronto"); + System.out.println("[El sistema se ha cerrado.]"); + } + } while (opcion != 9); + } + + /** + * Opción 1, Con este menú se crean cuentas con el username y + * contraseña preferidos, además de tu propio nombre. + * Primer menú al que debe ingresar un usuario que usa por primera vez el sistema. + */ + public static void menuCrearUsuario() throws IOException { + boolean exito = false; + String usuario; + String clave; + String nombreCompleto; + do { + in = new Scanner(System.in); + System.out.println("========================"); + System.out.println("Favor ingresar el nuevo usuario: (o fin para terminar)"); + usuario = in.nextLine(); + if (usuario.equals("fin")) return; + if(coleccionUsuarios.buscarUsuario(usuario) != null) { + System.out.println("Ese usuario ya existe"); + } else { + exito = true; + } + } while (!exito); + System.out.println("Favor ingresar la clave: "); + clave = in.nextLine(); + System.out.println("Favor ingresar el nombre completo: "); + nombreCompleto = in.nextLine(); + Usuario nuevoUsuario = new Usuario(usuario, clave, nombreCompleto); + coleccionUsuarios.agregarUsuario(nuevoUsuario); + System.out.println("Usuario creado correctamente"); + System.out.println("Bienvenido(a) al sistema"); + return; + } + + /** + * Opción 2, Con este menú se puede ingresar al sistema con el usuario y + * contraseña que hayas creado. + * Segundo menú al que debe ingresar un usuario que usa por primera vez el sistema. + */ + public static void menuIngresar() throws FileNotFoundException,IOException{ + boolean exito = false; + String usuario; + String clave; + do { + in = new Scanner(System.in); + System.out.println("========================"); + System.out.println("Favor ingresar su usuario: (fin para terminar)"); + usuario = in.nextLine(); + if(usuario.equals("fin")) return; + System.out.println("Favor ingresar su clave: "); + clave = in.nextLine(); + Principal.usuarioActivo = coleccionUsuarios.buscarUsuarioClave(usuario, clave); + if(coleccionUsuarios.buscarUsuario(usuario) == null) { + System.out.println("Usuario(a) ingresado no existe en el sistema"); + }else if(usuarioActivo == null) { + System.out.println("Combinación usuario y clave inválida"); + } else { + exito = true; + } + } while (!exito); + System.out.println("Hola, " + Principal.usuarioActivo.getNombreCompleto()); + System.out.println("Estás en el sistema"); + menuUsuarioActivo(); + } + + /** + * Haz ingresado al sistema, desde aquí se despliegan ciertas funciones + * numeradas a las que puedes acceder, como hacer una publicación, ver + * las que haz hecho, agregar amigos, y ver sus publicaciones también. + * Menú al que se llega si el usuario existe y se + * realiza correctamente su ingreso al sistema. + */ + public static void menuUsuarioActivo() throws FileNotFoundException,IOException{ + int opcion; + do { + in = new Scanner(System.in); + System.out.println("========================"); + System.out.println("1. Crear una publicación"); + System.out.println("2. Enviar solicitud de amistad"); + System.out.println("3. Aceptar solicitudes de amistad"); + System.out.println("4. Ver mis amigos"); + System.out.println("5. Ver las publicaciones de un(a) amigo(a)"); + System.out.println("6. Ver mis publicaciones"); + System.out.println("9. Regresar"); + System.out.println("Por favor digite su opción"); + opcion = in.nextInt(); + switch (opcion) { + case 1: + menuCrearPublicacion(); + break; + case 2: + menuPedirAmistad(); + break; + case 3: + menuAceptarSolicitudes(); + break; + case 4: + menuVerAmigos(); + break; + case 5: + menuVerPublicacionesAmigo(); + break; + case 6: + menuVerPublicacionesPropias(); + break; + case 7: + easterEgg(); + break; + } + } while (opcion != 9); + } + + /** + * Función 1, Puedes escribir cualquier cosa, esto será publicado. + * Tus amigos y tú pueden ver tus publicaciones + */ + public static void menuCrearPublicacion() throws FileNotFoundException,IOException{ + String texto; + in = new Scanner(System.in); + System.out.println("========================"); + System.out.println("Favor ingresar el texto de su publicación: "); + texto = in.nextLine(); + if(texto.isEmpty()){texto = " ";} + Publicacion publicacion = new Publicacion(Principal.usuarioActivo.getUsuario(), texto); + Principal.coleccionPublicaciones.agregarPublicacion(publicacion); + System.out.println("La publicación ha sido agregada"); + } + + /** + * Función 2, Puedes hacerte amigo de otro usuario, sólo tienes que + * escribir su username y esperar a que te acepte. + * Se confirmará si el usuario existe y que no eres tú mismo, luego revisará si + * aún no son amigos. Si pasa todos los filtros, se creará la solicitud de amistad. + * + * El otro usurio debe aceptar la solicitud antes de poder ser amigos. + */ + public static void menuPedirAmistad() throws FileNotFoundException,IOException{ + boolean exito = false; + String usuario; + Usuario amigo; + do { + in = new Scanner(System.in); + System.out.println("========================"); + System.out.println("Favor ingresar el(la) usuario(a): (fin para terminar)"); + usuario = in.nextLine(); + if(usuario.equals("fin")) return; + amigo = coleccionUsuarios.buscarUsuario(usuario); + if(amigo == null) { + System.out.println("Usuario(a) no existe en el sistema"); + continue; + } + if(Principal.coleccionAmistades.buscarAmistad(Principal.usuarioActivo.getUsuario(), usuario)) { + System.out.println("La amistad ya existe"); + continue; + } + if(Principal.coleccionSolicitudes.buscarSolicitud(Principal.usuarioActivo.getUsuario(), usuario)) { + System.out.println("La solicitud de amistad ya fué enviada, aún espera ser aceptada"); + break; + } + if(Principal.coleccionSolicitudes.buscarSolicitud(usuario, Principal.usuarioActivo.getUsuario())) { + System.out.println("El usuario(a) ingresado ya te envió a tí una"); + System.out.println("solicitud de amistad. ¿Deseas aceptarla?:"); + System.out.println("1. Sí" + "\n" + "2. No"); + String respuesta = (in.nextLine()).toLowerCase(); + if((respuesta.equals("1")) || (respuesta.equals("si")) || (respuesta.equals("sí"))){ + Amistad amistad = new Amistad(Principal.usuarioActivo.getUsuario(), amigo.getUsuario()); + Principal.coleccionAmistades.agregarAmistad(amistad); + System.out.print(Principal.usuarioActivo.getNombreCompleto() + ", "); + System.out.println("la amistad ha sido creada"); + System.out.println("¡Ahora " + usuario + " y tú son amigos!"); + exito = true; + break; + }else{ System.out.println("Ok");} + continue; + } + if(usuario.equals(Principal.usuarioActivo.getUsuario())) { + System.out.println("No tiene sentido que te pidas amistad a tí mismo(a)"); + continue; + } + Solicitud solicitud = new Solicitud(Principal.usuarioActivo.getUsuario(), amigo.getUsuario()); + Principal.coleccionSolicitudes.agregarSolicitud(solicitud); + System.out.print(Principal.usuarioActivo.getNombreCompleto() + ", "); + System.out.println("la solicitud de amistad ha sido enviada."); + System.out.println("¡Ahora espera a que " + usuario + " la acepte para ser amigos!"); + exito = true; + } while (!exito); + } + + /** + * Función 3, Desde aquí puedes aceptar las solicitudes que te han enviado, se desplegará + * una lista con ellas y luego solo tienes que escribir el usuario que quieras + * tener como amigo. + */ + public static void menuAceptarSolicitudes() throws FileNotFoundException,IOException{ + String yo = Principal.usuarioActivo.getUsuario(); + boolean exito = false; + String usuario; + Usuario amigo; + do { + in = new Scanner(System.in); + System.out.println("========================"); + Principal.coleccionSolicitudes.imprimirSolicitudes(yo, coleccionAmistades.getAmistadesDeUnUsuario(yo)); + System.out.println("\n" + "Escribe el usuario que quieras aceptar como amigo:"); + System.out.println("(o fin para terminar)"); + usuario = in.nextLine(); + if(usuario.equals("fin")) return; + amigo = coleccionUsuarios.buscarUsuario(usuario); + if(amigo == null) { + System.out.println("Usuario(a) no existe en el sistema"); + continue; + } + if(Principal.coleccionAmistades.buscarAmistad(yo, usuario)) { + System.out.println("La amistad ya existe"); + continue; + } + if(Principal.coleccionSolicitudes.buscarSolicitud(usuario, yo) == false) { + System.out.println("El usuario(a) ingresado no te ha enviado una solicitud"); + System.out.println("de amistad. Selecciona a alguien de la lista"); + continue; + } + if(usuario.equals(Principal.usuarioActivo.getUsuario())) { + System.out.println("No tiene sentido que aceptes tu propia solicitud"); + continue; + } + Amistad amistad = new Amistad(Principal.usuarioActivo.getUsuario(), amigo.getUsuario()); + Principal.coleccionAmistades.agregarAmistad(amistad); + System.out.print(Principal.usuarioActivo.getNombreCompleto() + ", "); + System.out.println("la amistad ha sido creada"); + System.out.println("¡Ahora " + usuario + " y tú son amigos!"); + exito = true; + } while (!exito); + } + + /** + * Función 4, se desplegará una lista con todos tus amigos. + * Puedes ver sus publicaciones con la función 5. + */ + public static void menuVerAmigos() { + String usuario = Principal.usuarioActivo.getUsuario(); + Principal.coleccionAmistades.imprimirAmistades(usuario); + } + + /** + * Función 5, Luego de hacerte amigo de otro usuario, puedes ver sus + * publicaciones, sólo tienes que escribir su username. + * Se confirmará si el usuario existe y que no eres tú mismo, + * luego revisará si efectivamente son amigos. Si pasa todos los filtros, + * mandará a imprimir las publicaciones de tu amigo empezando por las recientes. + */ + public static void menuVerPublicacionesAmigo() { + boolean exito = false; + String usuario; + Usuario amigo; + do { + in = new Scanner(System.in); + System.out.println("========================"); + System.out.println("Favor ingresar el(la) amigo(a) cuyas publicaciones quieres ver:"); + System.out.println("(escribe fin para terminar)"); + usuario = in.nextLine(); + if(usuario.equals("fin")) return; + amigo = coleccionUsuarios.buscarUsuario(usuario); + if(amigo == null) { + System.out.println("\n" + "Usuario(a) no existe en el sistema"); + continue; + } + if(usuario.equals(Principal.usuarioActivo.getUsuario())) { + System.out.println("\n" + "Recuerda usar la función 4 para ver tus propias publicaciones."); + menuVerPublicacionesPropias(); + exito = true; + break; + } + if((Principal.coleccionAmistades.buscarAmistad(Principal.usuarioActivo.getUsuario(), usuario) == false) + && (Principal.coleccionSolicitudes.buscarSolicitud(Principal.usuarioActivo.getUsuario(), usuario) == true)) { + System.out.println("Aún no eres amigo de " + usuario + ","); + System.out.println("pero ya le enviaste una solicitud."); + System.out.println("Para ver las publicaciones de " + usuario + ", debes"); + System.out.println("esperar a que tu SOLICITUD DE AMISTAD sea ACEPTADA."); + break; + } + if(Principal.coleccionAmistades.buscarAmistad(Principal.usuarioActivo.getUsuario(), usuario) == false) { + System.out.println("Aún no eres amigo de " + usuario + "."); + System.out.println("Para ver las publicaciones de " + usuario + ", primero debes"); + System.out.println("enviarle una SOLICITUD DE AMISTAD."); + break; + } + Principal.coleccionPublicaciones.imprimirPublicaciones(usuario); + exito = true; + } while (!exito); + } + + /** + * Función 6, Puedes ver tus propias publicaciones. + * Es automático, no tienes que ingresar nada, se mandarán + * a imprimir tus publicaciones empezando por las recientes. + */ + public static void menuVerPublicacionesPropias() { + String usuario = Principal.usuarioActivo.getUsuario(); + Principal.coleccionPublicaciones.imprimirPublicaciones(usuario); + } + + /** + * Función 7, Just do it. + */ + public static void easterEgg() throws FileNotFoundException{ + File bruh = new File("README.TXT"); + Scanner scan = new Scanner(bruh); + while(scan.hasNextLine()) { + String linea = scan.nextLine(); + System.out.println(linea); + } + scan.close(); + } +} diff --git a/Publicacion.class b/Publicacion.class new file mode 100644 index 0000000..f1a8589 Binary files /dev/null and b/Publicacion.class differ diff --git a/Publicacion.ctxt b/Publicacion.ctxt new file mode 100644 index 0000000..eca6b24 --- /dev/null +++ b/Publicacion.ctxt @@ -0,0 +1,19 @@ +#BlueJ class context +comment0.target=Publicacion +comment0.text=\r\n\ En\ esta\ clase\ se\ manejan\ los\ datos\ referentes\ a\ una\ publicaci\u00F3n\ individual,\r\n\ Tuve\ que\ modificar\ los\ Date\ para\ que\ fueran\ Strings,\ de\ otra\ forma\ no\ se\ guardaban.\r\n\ \r\n\ @author\ Esteban\ Vergara\ Giraldo\ \r\n\ @author\ John\ Alejandro\ Gonzales\r\n\ @author\ Andres\ Julian\ Gil\ Nagles\r\n\ @version\ 7\r\n +comment1.params=usuario\ texto +comment1.target=Publicacion(java.lang.String,\ java.lang.String) +comment1.text=\r\n\ Constructor\ de\ una\ nueva\ publicaci\u00F3n\r\n\ @param\ usuario\ usuario\ que\ realiza\ la\ publicaci\u00F3n\r\n\ @param\ texto\ texto\ de\ la\ publicaci\u00F3n\r\n +comment2.params=usuario\ texto\ fechaHora +comment2.target=Publicacion(java.lang.String,\ java.lang.String,\ java.lang.String) +comment2.text=\r\n\ Constructor\ de\ una\ nueva\ publicaci\u00F3n\ cuando\ esta\ ya\ tiene\ una\ fecha\ existente\r\n\ @param\ usuario\ usuario\ que\ realiza\ la\ publicaci\u00F3n\r\n\ @param\ texto\ texto\ de\ la\ publicaci\u00F3n\r\n\ @param\ fechaHora\ la\ fecha\ y\ la\ hora\ de\ cuando\ fu\u00E9\ publicada\ en\ formato\ String\r\n +comment3.params= +comment3.target=java.lang.String\ getUsuario() +comment3.text=\r\n\ Se\ retorna\ el\ nombre\ de\ usuario\ del\ usuario\ que\ realiza\ la\ publicaci\u00F3n\r\n\ @return\ El\ username\ del\ autor\r\n +comment4.params= +comment4.target=java.lang.String\ getFechaHora() +comment4.text=\r\n\ Se\ retorna\ la\ fecha\ (y\ hora)\ de\ la\ publicaci\u00F3n\r\n\ @return\ La\ fecha\ y\ hora\ solicitados\ pero\ ya\ en\ forma\ de\ String\r\n +comment5.params= +comment5.target=java.lang.String\ getTexto() +comment5.text=\r\n\ Se\ retorna\ el\ texto\ que\ contiene\ la\ publicaci\u00F3n\r\n\ @return\ El\ texto\ solicitado\r\n +numComments=6 diff --git a/Publicacion.java b/Publicacion.java new file mode 100644 index 0000000..1c4ea39 --- /dev/null +++ b/Publicacion.java @@ -0,0 +1,64 @@ +import java.util.Date; +/** + * En esta clase se manejan los datos referentes a una publicación individual, + * Tuve que modificar los Date para que fueran Strings, de otra forma no se guardaban. + * + * @author Esteban Vergara Giraldo + * @author John Alejandro Gonzales + * @author Andres Julian Gil Nagles + * @version 7 + */ +public class Publicacion +{ + private String usuario; + private String fechaHora; + private String texto; + + /** + * Constructor de una nueva publicación + * @param usuario usuario que realiza la publicación + * @param texto texto de la publicación + */ + public Publicacion(String usuario, String texto) { + this.usuario = usuario; + Date fechaHora = new Date(); + this.fechaHora = fechaHora.toString(); + this.texto = texto; + } + + /** + * Constructor de una nueva publicación cuando esta ya tiene una fecha existente + * @param usuario usuario que realiza la publicación + * @param texto texto de la publicación + * @param fechaHora la fecha y la hora de cuando fué publicada en formato String + */ + public Publicacion(String usuario, String texto, String fechaHora) { + this.usuario = usuario; + this.fechaHora = fechaHora; + this.texto = texto; + } + + /** + * Se retorna el nombre de usuario del usuario que realiza la publicación + * @return El username del autor + */ + public String getUsuario() { + return usuario; + } + + /** + * Se retorna la fecha (y hora) de la publicación + * @return La fecha y hora solicitados pero ya en forma de String + */ + public String getFechaHora() { + return fechaHora; + } + + /** + * Se retorna el texto que contiene la publicación + * @return El texto solicitado + */ + public String getTexto() { + return texto; + } +} diff --git a/README.TXT b/README.TXT new file mode 100644 index 0000000..d61739d --- /dev/null +++ b/README.TXT @@ -0,0 +1,105 @@ +.--------------. +| Project Data | +°--------------° +PROJECT TITLE: Facebook EAJ +PURPOSE OF PROJECT: Practica academica +VERSION or DATE: Version 1.27 - 26/11/2021 +HOW TO START THIS PROJECT: Al abrirlo en tu IDE, ejecuta + el main de "EntrarAlSistema" + +AUTHORS: Esteban Vergara Giraldo + +USER INSTRUCTIONS: Por medio de funciones numeradas e + instrucciones, puedes utilizar las + funciones de una red social. + _ ___ _.--. + \`.|\..----...-'` `-._.-' .-'` + / ' ` , __.'` + )/' _/ \ `-_, / + `-'" `"\_ ,_.-;_.-\_ ', [EAJ] + _.-'_./ {_.' ; / + {_.-``-' {_/ + + +PROJECT DEDICATED TO AYANAMI REI __.-"..--,__ + __..---" | _| "-_\ + __.---" | V|::.-"-._D + _--"".-.._ ,,::::::'"\/""'-:-:/ + _.-""::_:_:::::'-8b---" "' + .-/ ::::< |\::::::"\ + \/:::/::::'\\ |:::b::\ + /|::/:::/::::-::b:%b:\| + \/::::d:|8:::b:"%%%%%\ + |\:b:dP:d.:::%%%%%"""-, + \:\.V-/ _\b%P_ / .-._ + '|T\ "%j d:::--\.( "-. + ::d< -" d%|:::do%P"-:. "-, + |:I _ /%%%o::o8P "\. "\ + \8b d%%%%%%P""-._ _ \::. \ + \%%8 _./Y%%P/ .::'-oMMo ) + H"'|V | A:::...:odMMMMMM( ./ + H /_.--"JMMMMbo:d##########b/ + .-'o dMMMMMMMMMMMMMMP"" + /" / YMMMMMMMMM| + / . . "MMMMMMMM/ + :..::..:::.. MMMMMMM:| + \:/ \::::::::JMMMP":/ + :Ao ':__.-'MMMP:::Y + dMM"./:::::::::-.Y + _|b::od8::/:YM::/ + I HMMMP::/:/"Y/" + \'""' '':| + | -::::\ + | :-._ '::\ + |,.| \ _:"o + | d" / " \_:\. + ".Y. \ \::\ + \ \ \ MM\:Y + Y \ | MM \:b + >\ Y .MM MM + .IY L_ MP' MP + | \:| JM JP + | :\| MP MM + | ::: JM' JP| + | ':' JP JM | + L : JP MP | + 0 | Y JM | + 0 | JP" | + 0 | JP | + m | JP # + I | JM" Y + l | MP :" + |\ :- :| + | | '.\ :| + | | "| \ :| + \ \ \ :| + | | | \ :| + | | | \ :| + | \ \ | '. + | |:\ | :| + \ |::\..| :\ + ". /::::::' :|| + :|::/:::| /:\ + | \/::|: \' ::| + | :::|| ::| + | ::|| ::| + | ::|| ::| + | ::|| ::| + | ': | .:| + | : | :| + | : | :| + | :|| .:| + | ::\ .:| + | ::: .::| + / ::| :::| + __/ .::| ':| + ...----"" ::/ :: + /m_ AMm '/ .::: + ""MmmMMM#mmMMMMMMM" .:::m + """YMMM""""""P ':mMI + _' _MMMM + _.-" mm mMMMMMMMM" + / MMMMMMM"" + mmmmmmMMMM" lol + +You werent supposed to be able to get here you know \ No newline at end of file diff --git a/Solicitud.class b/Solicitud.class new file mode 100644 index 0000000..ff7148a Binary files /dev/null and b/Solicitud.class differ diff --git a/Solicitud.ctxt b/Solicitud.ctxt new file mode 100644 index 0000000..13c9150 --- /dev/null +++ b/Solicitud.ctxt @@ -0,0 +1,13 @@ +#BlueJ class context +comment0.target=Solicitud +comment0.text=\r\n\ En\ esta\ clase\ se\ mantienen\ los\ usuarios\r\n\ y\ se\ crea\ la\ relaci\u00F3n\ entre\ estos.\r\n\ \r\n\ @author\ Esteban\ Vergara\ Giraldo\r\n\ @author\ John\ Alejandro\ Gonzales\r\n\ @author\ Andres\ Julian\ Gil\ Nagles\r\n\ @version\ 5\r\n +comment1.params=usuario1\ usuario2 +comment1.target=Solicitud(java.lang.String,\ java.lang.String) +comment1.text=\r\n\ Constructor\r\n\ Se\ crea\ una\ solicitud\ con\ los\ usuarios\ ingresados.\r\n\ @param\ usuario1\ Usuario\ emisor,\ que\ quiere\ tener\ amistad\ con\ usuario2\r\n\ @param\ usuario2\ El\ usuario\ receptor,\ objetivo\ del\ usuario1\r\n +comment2.params= +comment2.target=java.lang.String\ getUsuario1() +comment2.text=\r\n\ Se\ retorna\ el\ usuario\ que\ cre\u00F3\ la\ solicitud\ inicialmente\r\n\ @return\ Uno\ de\ los\ usuarios\ de\ la\ amistad,\ el\ emisor\r\n +comment3.params= +comment3.target=java.lang.String\ getUsuario2() +comment3.text=\r\n\ Se\ retorna\ el\ usuario\ objetivo\ de\ la\ solicitud\ de\ usuario1\r\n\ @return\ El\ otro\ usuario\ de\ la\ amistad,\ el\ receptor\r\n +numComments=4 diff --git a/Solicitud.java b/Solicitud.java new file mode 100644 index 0000000..9e0e22a --- /dev/null +++ b/Solicitud.java @@ -0,0 +1,42 @@ + +/** + * En esta clase se mantienen los usuarios + * y se crea la relación entre estos. + * + * @author Esteban Vergara Giraldo + * @author John Alejandro Gonzales + * @author Andres Julian Gil Nagles + * @version 5 + */ +public class Solicitud +{ + private String usuario1; + private String usuario2; + + /** + * Constructor + * Se crea una solicitud con los usuarios ingresados. + * @param usuario1 Usuario emisor, que quiere tener amistad con usuario2 + * @param usuario2 El usuario receptor, objetivo del usuario1 + */ + public Solicitud(String usuario1, String usuario2) { + this.usuario1 = usuario1; + this.usuario2 = usuario2; + } + + /** + * Se retorna el usuario que creó la solicitud inicialmente + * @return Uno de los usuarios de la amistad, el emisor + */ + public String getUsuario1() { + return usuario1; + } + + /** + * Se retorna el usuario objetivo de la solicitud de usuario1 + * @return El otro usuario de la amistad, el receptor + */ + public String getUsuario2() { + return usuario2; + } +} diff --git a/Usuario.class b/Usuario.class new file mode 100644 index 0000000..98009d3 Binary files /dev/null and b/Usuario.class differ diff --git a/Usuario.ctxt b/Usuario.ctxt new file mode 100644 index 0000000..02f9ec9 --- /dev/null +++ b/Usuario.ctxt @@ -0,0 +1,16 @@ +#BlueJ class context +comment0.target=Usuario +comment0.text=\r\n\ En\ esta\ clase\ se\ crean\ y\ manejan\ los\ datos\ referentes\ a\ un\ usuario.\r\n\ \r\n\ @author\ Esteban\ Vergara\ Giraldo\r\n\ @author\ John\ Alejandro\ Gonzales\r\n\ @author\ Andres\ Julian\ Gil\ Nagles\r\n\ @version\ 2\r\n +comment1.params=usuario\ clave\ nombreCompleto +comment1.target=Usuario(java.lang.String,\ java.lang.String,\ java.lang.String) +comment1.text=\r\n\ Constructor\r\n\ Se\ crea\ un\ usuario\ con\ las\ especificaciones\ ingresadas.\r\n\ @param\ usuario\ El\ nombre\ de\ usuario\ que\ se\ prefiere\r\n\ @param\ clave\ La\ contrase\u00F1a\ que\ se\ quiere\r\n\ @param\ nombreCompleto\ El\ nombre\ de\ la\ persona\ que\ crea\ el\ usuario\r\n +comment2.params= +comment2.target=java.lang.String\ getUsuario() +comment2.text=\r\n\ Se\ retorna\ el\ usuario\ que\ quiere\ saber\ su\ nombre\ de\ usuario\r\n\ @return\ El\ nombre\ de\ usuario\ solicitado\r\n +comment3.params= +comment3.target=java.lang.String\ getClave() +comment3.text=\r\n\ Se\ retorna\ la\ clave\ del\ usuario\r\n\ @return\ La\ clave\ solicitada\r\n +comment4.params= +comment4.target=java.lang.String\ getNombreCompleto() +comment4.text=\r\n\ Se\ retorna\ el\ nombre\ completo\ real\ del\ usuario\r\n\ @return\ El\ nombre\ completo\ solicitado\r\n +numComments=5 diff --git a/Usuario.java b/Usuario.java new file mode 100644 index 0000000..3ac9889 --- /dev/null +++ b/Usuario.java @@ -0,0 +1,54 @@ + +/** + * En esta clase se crean y manejan los datos referentes a un usuario. + * + * @author Esteban Vergara Giraldo + * @author John Alejandro Gonzales + * @author Andres Julian Gil Nagles + * @version 2 + */ +public class Usuario +{ + private String usuario; + private String clave; + private String nombreCompleto; + + /** + * Constructor + * Se crea un usuario con las especificaciones ingresadas. + * @param usuario El nombre de usuario que se prefiere + * @param clave La contraseña que se quiere + * @param nombreCompleto El nombre de la persona que crea el usuario + */ + public Usuario(String usuario, String clave, String nombreCompleto) { + this.usuario = usuario; + this.clave = clave; + this.nombreCompleto = nombreCompleto; + } + + /** + * Se retorna el usuario que quiere saber su nombre de usuario + * @return El nombre de usuario solicitado + */ + public String getUsuario() { + return usuario; + } + + /** + * Se retorna la clave del usuario + * @return La clave solicitada + */ + public String getClave() { + return clave; + } + + /** + * Se retorna el nombre completo real del usuario + * @return El nombre completo solicitado + */ + public String getNombreCompleto() { + return nombreCompleto; + } + + +} diff --git a/amistadesFile.txt b/amistadesFile.txt new file mode 100644 index 0000000..a4f20b6 --- /dev/null +++ b/amistadesFile.txt @@ -0,0 +1,8 @@ +Quito,John +Amongus,Quito +6,Quito +John,6 +2,1 +Messi,Quito +Helmuth,Quito +Quito,laura diff --git a/package.bluej b/package.bluej new file mode 100644 index 0000000..9b5b1d1 --- /dev/null +++ b/package.bluej @@ -0,0 +1,158 @@ +#BlueJ package file +dependency1.from=EntrarAlSistema +dependency1.to=Principal +dependency1.type=UsesDependency +dependency10.from=Principal +dependency10.to=Solicitud +dependency10.type=UsesDependency +dependency11.from=ColeccionAmistades +dependency11.to=Amistad +dependency11.type=UsesDependency +dependency12.from=ColeccionPublicaciones +dependency12.to=Publicacion +dependency12.type=UsesDependency +dependency13.from=ColeccionSolicitudes +dependency13.to=Solicitud +dependency13.type=UsesDependency +dependency2.from=ColeccionUsuarios +dependency2.to=Usuario +dependency2.type=UsesDependency +dependency3.from=Principal +dependency3.to=ColeccionUsuarios +dependency3.type=UsesDependency +dependency4.from=Principal +dependency4.to=ColeccionPublicaciones +dependency4.type=UsesDependency +dependency5.from=Principal +dependency5.to=ColeccionSolicitudes +dependency5.type=UsesDependency +dependency6.from=Principal +dependency6.to=ColeccionAmistades +dependency6.type=UsesDependency +dependency7.from=Principal +dependency7.to=Usuario +dependency7.type=UsesDependency +dependency8.from=Principal +dependency8.to=Publicacion +dependency8.type=UsesDependency +dependency9.from=Principal +dependency9.to=Amistad +dependency9.type=UsesDependency +editor.fx.0.height=739 +editor.fx.0.width=816 +editor.fx.0.x=275 +editor.fx.0.y=0 +objectbench.height=91 +objectbench.width=1342 +package.divider.horizontal=0.6 +package.divider.vertical=0.8478260869565217 +package.editor.height=539 +package.editor.width=1213 +package.editor.x=0 +package.editor.y=0 +package.frame.height=744 +package.frame.width=1382 +package.numDependencies=13 +package.numTargets=14 +package.showExtends=true +package.showUses=true +project.charset=UTF-8 +readme.height=60 +readme.name=@README +readme.width=49 +readme.x=10 +readme.y=10 +target1.height=30 +target1.name=ColeccionPublicaciones +target1.showInterface=false +target1.type=ClassTarget +target1.width=240 +target1.x=200 +target1.y=480 +target10.height=30 +target10.name=ColeccionSolicitudes +target10.showInterface=false +target10.type=ClassTarget +target10.width=240 +target10.x=200 +target10.y=300 +target11.height=30 +target11.name=ColeccionUsuarios +target11.showInterface=false +target11.type=ClassTarget +target11.width=240 +target11.x=200 +target11.y=210 +target12.height=80 +target12.name=EntrarAlSistema +target12.showInterface=false +target12.type=ClassTarget +target12.width=230 +target12.x=340 +target12.y=30 +target13.height=60 +target13.name=Principal +target13.showInterface=false +target13.type=ClassTarget +target13.width=150 +target13.x=90 +target13.y=100 +target14.height=80 +target14.name=publicacionesFile.txt +target14.type=TextTarget +target14.width=130 +target14.x=440 +target14.y=440 +target2.height=30 +target2.name=Publicacion +target2.showInterface=false +target2.type=ClassTarget +target2.width=100 +target2.x=340 +target2.y=440 +target3.height=30 +target3.name=Solicitud +target3.showInterface=false +target3.type=ClassTarget +target3.width=100 +target3.x=340 +target3.y=260 +target4.height=30 +target4.name=Usuario +target4.showInterface=false +target4.type=ClassTarget +target4.width=100 +target4.x=340 +target4.y=170 +target5.height=80 +target5.name=amistadesFile.txt +target5.type=TextTarget +target5.width=130 +target5.x=440 +target5.y=350 +target6.height=80 +target6.name=usuariosFile.txt +target6.type=TextTarget +target6.width=130 +target6.x=440 +target6.y=170 +target7.height=30 +target7.name=Amistad +target7.showInterface=false +target7.type=ClassTarget +target7.width=100 +target7.x=340 +target7.y=350 +target8.height=80 +target8.name=solicitudesFile.txt +target8.type=TextTarget +target8.width=130 +target8.x=440 +target8.y=260 +target9.height=30 +target9.name=ColeccionAmistades +target9.showInterface=false +target9.type=ClassTarget +target9.width=240 +target9.x=200 +target9.y=390 diff --git a/publicacionesFile.txt b/publicacionesFile.txt new file mode 100644 index 0000000..a5a9be3 --- /dev/null +++ b/publicacionesFile.txt @@ -0,0 +1,18 @@ +Quito/I'VE BECOME GOD/Fri Nov 19 15:49:12 COT 2021 +Quito/jaja dizq hola mundo/Sat Nov 20 14:06:54 COT 2021 +Quito/omfg que elegancia de código/Sun Nov 21 17:56:53 COT 2021 +Amongus/bro, i'm truly god, look at this/Sun Nov 21 19:03:42 COT 2021 +Quito/joder terraria es lo máximo, siuuuuuuu/Fri Nov 26 15:03:51 COT 2021 +Quito/haha create manuals go brrr/Fri Nov 26 17:02:02 COT 2021 +Messi/SIUUUUUU/Fri Nov 26 17:26:08 COT 2021 +Messi/Ah no, ese es Cristiano/Fri Nov 26 17:26:17 COT 2021 +Quito/lol, last message until distribution/Fri Nov 26 21:32:37 COT 2021 +Quito/omegalol/Fri Nov 26 21:33:06 COT 2021 +PruebaPersistencia/Prueba de que la persistencia en archivos funciona/Sat Nov 27 22:08:09 COT 2021 +PruebaPersistencia/Debería salir esta al principio porque es la más reciente/Sat Nov 27 22:08:47 COT 2021 +laura/lmaooooo/Sun Feb 20 15:27:36 COT 2022 +Quito/uy, esos ? q/Sun Feb 20 15:29:13 COT 2022 +Quito/Solucionado, jajjs/Sun Feb 20 15:47:19 COT 2022 +laura/Error Laura.exe, ajjjsja/Sun Feb 20 15:47:46 COT 2022 +laura/Q daina mor/Sun Feb 20 15:48:04 COT 2022 +laura/Tqm/Sun Feb 20 15:48:11 COT 2022 diff --git a/solicitudesFile.txt b/solicitudesFile.txt new file mode 100644 index 0000000..81fa72a --- /dev/null +++ b/solicitudesFile.txt @@ -0,0 +1,9 @@ +Quito,6 +6,John +6,Amongus +1,2 +6,2 +2,Quito +Quito,Messi +Quito,Helmuth +laura,Quito diff --git a/usuariosFile.txt b/usuariosFile.txt new file mode 100644 index 0000000..2932ec1 --- /dev/null +++ b/usuariosFile.txt @@ -0,0 +1,13 @@ +Quito,1234,Esteban Vergara [Dev Account] +John,amongus,xXxJohnProGamerxXx [Dev Account] +Andy,sancocho,Andrés [Dev Account] +Amongus,sus,Sussy Baka +6,6,6 (Test) +1,1,1 (Pruebas) +2,2,2 (Pruebas) +Messi,che,lioMesi +Helmuth,1,Helmuth +PruebaPersistencia,4321,Prueba para persistencia +Esteban,1234,Esteban V +la,alu,u +laura,123,Laura_Agudelo