Sprint 7
Fecha inicio: 5 de agosto 2018
Fecha fin: 12 de septiembre 2018
¿Que hemos hecho?
- diseño base del login 2
¿Que vamos a hacer?
- Crear la conexion con la base de datos 8
velocidad total sprint 7: 8
¿Que dificultades hemos tenido?
- Falta de tiempo por carga academica, Problemas estudiando la tecnologia a usar.
https://imgur.com/rFVqB8b
https://imgur.com/2Lsbbpw
https://imgur.com/JdNBct0
https://imgur.com/2NEOggJ
Ekri
Moderator: julianmartinez16
Re: Ekri
Sprint 8
Fecha inicio:12 de septiembre
Fecha fin: 18 de septiembre
¿Que hemos hecho?
Cambiamos de plataforma, decidimos continuar el proyecto en android studio
Se realizo navegabilidad, diseño base y conexion a base de datos
Se obtuvo un primer minimo producto viable
se realizo la creacion de un nuevo repositorio
¿Que se va a realizar?
- Vista de login en android estudio 4
- Back de login 6
Velocidad total del sprint : 10
Evidencias
Enlace repositorio
https://github.com/CathyLec/EkriAndroid
Diagramas
Casos de uso

Flujo

Seecuencia

Burndown

Fecha inicio:12 de septiembre
Fecha fin: 18 de septiembre
¿Que hemos hecho?
Cambiamos de plataforma, decidimos continuar el proyecto en android studio
Se realizo navegabilidad, diseño base y conexion a base de datos
Se obtuvo un primer minimo producto viable
se realizo la creacion de un nuevo repositorio
¿Que se va a realizar?
- Vista de login en android estudio 4
- Back de login 6
Velocidad total del sprint : 10
Evidencias
Enlace repositorio
https://github.com/CathyLec/EkriAndroid
Diagramas
Casos de uso

Flujo

Seecuencia

Burndown

Re: Ekri
Sprint 9
Fecha inicio: 19 de septiembre
Fecha fin: 25 de septiembre
¿Que se hizo?
-Diseño del sing in
-Diseño del sing up
¿Que se hara?
-Back del sing in 6
-Back del sing up 6
velocidad total sprint: 12
Problemas:
- errores y alertas en el gradle
- actualizacion de android studio
- errores de version
Evidencias
-Errores y alertas



-Diseño sing in

-Diseño sing up

-Logo

-Grafica Burn down

Fecha inicio: 19 de septiembre
Fecha fin: 25 de septiembre
¿Que se hizo?
-Diseño del sing in
-Diseño del sing up
¿Que se hara?
-Back del sing in 6
-Back del sing up 6
velocidad total sprint: 12
Problemas:
- errores y alertas en el gradle
- actualizacion de android studio
- errores de version
Evidencias
-Errores y alertas



-Diseño sing in

-Diseño sing up

-Logo

-Grafica Burn down

Re: Ekri

Pendiente la publicación del martes, la próxima clase revisamos avance en el repositorio, avance de martes y jueves, validación en el checklist de diseño y código y burndown actualizado.
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez
Re: Ekri
Sprint 10
Fecha inicio: 25 de septiembre
Fecha fin: 02 de octubre
¿Que se hizo?
-Solucion errores en el gradle
-Back del sing in
-Back del sing up
¿Que se hara?
-Correccion actualizacion de personaje, textos, notas y cronologia10
velocidad total sprint: 10
Evidencia:
Iniciar Sesion
Registro
Grafica Burndown

Gradle

Fecha inicio: 25 de septiembre
Fecha fin: 02 de octubre
¿Que se hizo?
-Solucion errores en el gradle
-Back del sing in
-Back del sing up
¿Que se hara?
-Correccion actualizacion de personaje, textos, notas y cronologia10
velocidad total sprint: 10
Evidencia:
Iniciar Sesion
Code: Select all
public class Singin extends BaseActivity implements View.OnClickListener {
private TextView txtSingup;
private EditText inputMail;
private EditText inputPassword;
private FirebaseAuth mAuth;
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_singin);
txtSingup=(TextView) findViewById(R.id.link_Singup);
inputMail=(EditText)findViewById(R.id.input_email);
inputPassword=(EditText) findViewById(R.id.input_password);
progressDialog = new ProgressDialog(this);
findViewById(R.id.btn_signin).setOnClickListener(this);
mAuth= FirebaseAuth.getInstance();
}
public void signIn(){
final String email=inputMail.toString().trim();
String password=inputPassword.toString().trim();
if (TextUtils.isEmpty(email)) {//(precio.equals(""))
Toast.makeText(this, "Se debe ingresar un email", Toast.LENGTH_LONG).show();
return;
}
if (TextUtils.isEmpty(password)) {
Toast.makeText(this, "Falta ingresar la contraseña", Toast.LENGTH_LONG).show();
return;
}
progressDialog.setMessage("Realizando consulta en linea...");
progressDialog.show();
mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
//checking if success
if (task.isSuccessful()) {
Toast.makeText(Singin.this, "Bienvenido: " + inputMail.getText(), Toast.LENGTH_LONG).show();
Textos();
} else {
if (task.getException() instanceof FirebaseAuthUserCollisionException) {//si se presenta una colisión
Toast.makeText(Singin.this, "Ese usuario ya existe ", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(Singin.this, "No se pudo registrar el usuario ", Toast.LENGTH_LONG).show();
}
}
progressDialog.dismiss();
}
});
}
public void SingUp (View view){
Intent intent = new Intent(Singin.this, Singup.class);
startActivity(intent);
}
public void Textos (){
Intent intent = new Intent(Singin.this, Textos.class);
startActivity(intent);
}
@Override
public void onClick(View v) {
signIn();
}
}
Code: Select all
public class Singup extends AppCompatActivity implements View.OnClickListener {
private TextView txtLogin;
private EditText txtName, txtEmail, txtPassword, txtPasswordConfirm;
private Button btnSignup;
private FirebaseAuth mAuth;
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_singup);
mAuth = FirebaseAuth.getInstance();
txtLogin=(TextView) findViewById(R.id.link_login);
txtName=(EditText) findViewById(R.id.txtName);
txtEmail=(EditText) findViewById(R.id.txtEmail);
txtPassword=(EditText) findViewById(R.id.txtPassword);
txtPasswordConfirm=(EditText) findViewById(R.id.txtPasswordConfirm);
btnSignup=(Button) findViewById(R.id.btnSignup);
progressDialog = new ProgressDialog(this);
btnSignup.setOnClickListener(this);
}
private void registrar() {
String name= txtName.getText().toString().trim();
String email= txtEmail.getText().toString().trim();
String password=txtPassword.getText().toString().trim();
String confirmation= txtPasswordConfirm.getText().toString().trim();
if(TextUtils.isEmpty(name)){
Toast.makeText(this,"Se debe ingresar un nombre",Toast.LENGTH_LONG).show();
return;
}
if(TextUtils.isEmpty(email)){
Toast.makeText(this,"Se debe ingresar un email",Toast.LENGTH_LONG).show();
return;
}
if(TextUtils.isEmpty(password)){
Toast.makeText(this,"Se debe ingresar una contraseña",Toast.LENGTH_LONG).show();
return;
}
if(TextUtils.isEmpty(confirmation)){
Toast.makeText(this,"Se debe verificar la contraseña",Toast.LENGTH_LONG).show();
return;
}
while(!password.equals(confirmation)){
Toast.makeText(this,"Las contraseñas no coinciden",Toast.LENGTH_LONG).show();
return;
}
progressDialog.setMessage("Realizando registro en linea...");
progressDialog.show();
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
//checking if success
if(task.isSuccessful()){
Toast.makeText(Singup.this,"Se ha registrado el usuario con el email: "+ txtEmail.getText(),Toast.LENGTH_LONG).show();
CreateTextos();
}else{
Toast.makeText(Singup.this,"No se pudo registrar el usuario ",Toast.LENGTH_LONG).show();
}
progressDialog.dismiss();
}
});
}
public void Login (View view){
Intent intent = new Intent(Singup.this, Singin.class);
startActivity(intent);
}
public void CreateTextos (){
Intent intent = new Intent(Singup.this, Textos.class);
startActivity(intent);
}
@Override
public void onClick(View v) {
registrar();
}
}

Gradle

Re: Ekri
Sprint 11
Fecha inicio: 02 de octubre
Fecha fin: 09 de octubre
¿Que se hizo?
-Correccion actualizacion de personaje, textos, notas y cronologia 10
¿Que se hara?
-Correccion actualizacion de personaje, cronologia 5
¿Que problemas hubo?
- Por motivos personales no tuve mi computador 4 dias de la semana
evidencia
Cdigo de actualizacion notas
Burndown

diagrama casos de uso

diagrama de flujo

diagrama de secuencia

Fecha inicio: 02 de octubre
Fecha fin: 09 de octubre
¿Que se hizo?
-Correccion actualizacion de personaje, textos, notas y cronologia 10
¿Que se hara?
-Correccion actualizacion de personaje, cronologia 5
¿Que problemas hubo?
- Por motivos personales no tuve mi computador 4 dias de la semana
evidencia
Cdigo de actualizacion notas
Code: Select all
private void showUpdateDeleteDialog(final String notaId, String lugarTitulo){
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
LayoutInflater inflater = getLayoutInflater();
final View dialogView = inflater.inflate(R.layout.update_nota,null);
dialogBuilder.setView(dialogView);
final EditText txtTitulo = (EditText) dialogView.findViewById(R.id.txtTitulo);
final EditText txtImportancia = (EditText) dialogView.findViewById(R.id.txtImportancia);
final EditText txtTexto = (EditText) dialogView.findViewById(R.id.txtTexto);
final Button btnUpdate = (Button) dialogView.findViewById(R.id.btnUpdate);
final Button btnDelete = (Button) dialogView.findViewById(R.id.btnDelete);
dialogBuilder.setTitle(lugarTitulo);
final AlertDialog b = dialogBuilder.create();
b.show();
btnUpdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String titulo = txtTitulo.getText().toString();
String importancia = txtImportancia.getText().toString();
String texto = txtTexto.getText().toString();
if(!TextUtils.isEmpty(titulo) && !TextUtils.isEmpty(importancia)){
updateNotas(notaId,titulo,texto, Integer.parseInt(importancia));
b.dismiss();
}else {
if(!TextUtils.isEmpty(titulo)) {
updateNotas(notaId, titulo, texto, 0);
b.dismiss();
}
}
}
});
btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
deleteNotas(notaId);
b.dismiss();
}
});
}
public boolean updateNotas(String id,String titulo, String texto, int importancia){
DatabaseReference dR = FirebaseDatabase.getInstance().getReference("notas").child(libros.getListaLibros().get(libros.getLibroSeleccionado()).getId()).child(id);
Nota nota = new Nota(titulo, texto,importancia);
nota.setId(id);
dR.setValue(nota);
Toast.makeText(this, "Se altero de forma PREMANENTE la nota", Toast.LENGTH_SHORT).show();
return true;
}
private boolean deleteNotas(String id){
DatabaseReference dR = FirebaseDatabase.getInstance().getReference("notas").child(libros.getListaLibros().get(libros.getLibroSeleccionado()).getId()).child(id);
dR.removeValue();
Toast.makeText(this, "Se elimino de forma PREMANENTE la nota", Toast.LENGTH_SHORT).show();
return true;
}
diagrama casos de uso

diagrama de flujo

diagrama de secuencia
