StudentPro

En esta sección se atenderán las dudas relacionadas con sistemas de gestión de la calidad, procedimientos, buenas prácticas, normas y todo lo relacionado con aseguramiento de la calidad

Moderator: julianmartinez16

User avatar
xacarana
Site Admin
Posts: 1028
Joined: Fri Jan 15, 2016 6:13 pm

Re: StudentPro

Post by xacarana » Tue Aug 28, 2018 4:54 pm

Image

Acumulan dos strikes si no se ponen al día, hasta el momento solo tienen uno. Se deben incorporar las siguientes instrucciones para el siguiente post incluyendo el de hoy:
  • Se debe dejar explicito el número del sprint actual, cuando empieza y cuando termina
  • Faltan los puntos de velocidad
  • Falta la gráfica burndown
  • Todos los post deben llevar evidencia de avance funcional, no solo capturas de la interfaz
  • Usen la etiqueta code, cuando vayan a pegar código.
  • Se debe incluir el checklist de código y el cheklist de diseño por cada componente
  • Se debe diseñar primero el componente y se debe publicar el diseño mínimo 3 diagramas
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
Valeriam04
Posts: 45
Joined: Tue Jan 17, 2017 8:55 am

Re: StudentPro

Post by Valeriam04 » Sun Sep 02, 2018 4:14 pm

JosueFerMar wrote:
Thu Aug 02, 2018 9:41 am
Sprint 1
02/08/2018


¿QUE SE HIZO?

Inicio del proyecto.
-Se creo el proyecto con react-native, ademas de ello se añadieron los paquetes para le manejo de la base de datos de Firebase y el manejo de la navegación.
-Se creo la base de datos en Firebase y se conecto con el proyecto.
-Se añadieron las escenas de bienvenida,registro e inicio de sesión (actualmente se pueden realizar ambas operaciones en la aplicación).

INCONVENIENTES/PROBLEMAS

Debido a que es una nueva herramienta de desarrollo (hablando de react-native) el mayor problema fue la adaptación y pocos conocimientos que se tienen de esta.

¿QUE SE VA A HACER?

Se tiene pensado implementar el registro por roles, debido a que en la aplicación se tiene pensado utilizar varios roles y cada rol tiene ciertos datos a pedir al usuario al momento de registrarse.
Valeria Moreno
Gestión de la calidad del Software

User avatar
Valeriam04
Posts: 45
Joined: Tue Jan 17, 2017 8:55 am

Re: StudentPro

Post by Valeriam04 » Mon Sep 03, 2018 12:39 pm

JosueFerMar wrote:
Thu Aug 02, 2018 9:41 am
Sprint 1 - 02/08/2018

¿QUE SE HIZO?

Inicio del proyecto.
-Se creo el proyecto con react-native, ademas de ello se añadieron los paquetes para le manejo de la base de datos de Firebase y el manejo de la navegación.
-Se creo la base de datos en Firebase y se conecto con el proyecto.
-Se añadieron las escenas de bienvenida,registro e inicio de sesión (actualmente se pueden realizar ambas operaciones en la aplicación).

INCONVENIENTES/PROBLEMAS

Debido a que es una nueva herramienta de desarrollo (hablando de react-native) el mayor problema fue la adaptación y pocos conocimientos que se tienen de esta.

¿QUE SE VA A HACER?

Se tiene pensado implementar el registro por roles, debido a que en la aplicación se tiene pensado utilizar varios roles y cada rol tiene ciertos datos a pedir al usuario al momento de registrarse.
Burndown
Image
Valeria Moreno
Gestión de la calidad del Software

User avatar
JosueFerMar
Posts: 13
Joined: Sun Feb 11, 2018 2:08 pm

Re: StudentPro

Post by JosueFerMar » Tue Sep 04, 2018 10:06 am

Avance Sprint 6 06/09/2018

¿Que se hizo?
Se terminaron los registros por roles

¿Que dificultades hubieron?
Falta de tiempo

¿Que se hara?
Se termina el logeo por roles y se empezara con el modulo de guardar cursos

Image
Image
Image
Image
Image
Image

User avatar
Valeriam04
Posts: 45
Joined: Tue Jan 17, 2017 8:55 am

Re: StudentPro

Post by Valeriam04 » Tue Sep 04, 2018 12:06 pm

JosueFerMar wrote:
Tue Sep 04, 2018 10:06 am
Sprint 6
06/09/2018


¿Que se hizo?
Se terminaron los registros por roles

¿Que dificultades hubieron?
Falta de tiempo

¿Que se hara?
Se termina el logeo por roles y se empezara con el modulo de guardar cursos

Image

Image
Image
Image
Image
Image
Image
Last edited by Valeriam04 on Thu Sep 13, 2018 8:39 pm, edited 1 time in total.
Valeria Moreno
Gestión de la calidad del Software

User avatar
xacarana
Site Admin
Posts: 1028
Joined: Fri Jan 15, 2016 6:13 pm

Re: StudentPro

Post by xacarana » Thu Sep 13, 2018 12:59 pm

No hay publicación del 6 de septiembre

Image

No hay publicación del 11 de septiembre

Image
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
JosueFerMar
Posts: 13
Joined: Sun Feb 11, 2018 2:08 pm

Re: StudentPro

Post by JosueFerMar » Thu Sep 13, 2018 6:45 pm

Sprint 6

Que se hizo?
se termino el logeo y registro por roles

Problemas?
Falta de tiempo

Que se va a hacer?
Se empezara con el modulo de guardar los cursos

User avatar
JosueFerMar
Posts: 13
Joined: Sun Feb 11, 2018 2:08 pm

Re: StudentPro

Post by JosueFerMar » Thu Sep 13, 2018 6:46 pm

avance Sprint 7 11/09/2018

Que se hizo?
Los estudiantes ya pueden guardar sus cursos

Problemas?
Falta de tiempo

Que se va a hacer?
La posibilidad de visualizar los cursos guardados y la posibilidad de guardar los tiempos disponibles

User avatar
JosueFerMar
Posts: 13
Joined: Sun Feb 11, 2018 2:08 pm

Re: StudentPro

Post by JosueFerMar » Thu Sep 13, 2018 7:40 pm

Sprint 7 13/09/2018

Que se hizo?
Los estudiantes/tutores ahora pueden guardar sus tiempos disponibles, ademas de ello pueden visualizar sus cursos guardados y los pueden eliminar

Problemas?
Falta de tiempo

Que se va a hacer?
Se le agregaran las mismas funcionalidades en cuanto a cursos y tiempos disponibles para los padres

User avatar
Valeriam04
Posts: 45
Joined: Tue Jan 17, 2017 8:55 am

Re: StudentPro

Post by Valeriam04 » Thu Sep 13, 2018 8:00 pm

JosueFerMar wrote:
Thu Sep 13, 2018 7:40 pm
Sprint 7 13/09/2018

Que se hizo?
Los estudiantes/tutores ahora pueden guardar sus tiempos disponibles, ademas de ello pueden visualizar sus cursos guardados y los pueden eliminar

Problemas?
Falta de tiempo

Que se va a hacer?
Se le agregaran las mismas funcionalidades en cuanto a cursos y tiempos disponibles para los padres
Image

Code: Select all

Archivo helpers.js
import * as firebase from './firebase'

    class Helpers{
        static getUsername(userId,callback){
            let userNamePath= "/users/"+userId+"/username"
            firebase.database.ref(userNamePath).on('value',(snapshot) => {
                let name=''
                if(snapshot.val()){
                    name=snapshot.val()
                }
                callback(name)
            })
        }
        static getFirstLog(userId,callback){
            let firstLogPath= "/users/"+userId+"/firstLog"
            firebase.database.ref(firstLogPath).on('value',(snapshot) => {
                let flag=false
                if(snapshot.val()){
                    flag=snapshot.val()
                }
                callback(flag)
            })
        }
        static getRole(userId,callback){
            let rolePath= "/users/"+userId+"/role"
            firebase.database.ref(rolePath).on('value',(snapshot) => {
                let role=''
                if(snapshot.val()){
                    role=snapshot.val()
                }
                callback(role)
            })
        }
        
        static getNumberCoursesTutor(userId,callback){
            let tutorPath="/CoursesTutor/"+userId
            firebase.database.ref(tutorPath).on('value',(snapshot) => {
                let coursesTutor=[]
                if(snapshot.val()){
                    coursesTutor=snapshot.val()
                }
                callback(coursesTutor)
            })
        }
        static getAvailableTimesTutor(userId,callback){
            let tutorPath="/AvailableTimeTutor/"+userId
            firebase.database.ref(tutorPath).on('value',(snapshot) => {
                let available_times=[]
                if(snapshot.val()){
                    available_times=snapshot.val()
                }
                callback(available_times)
            })
        }
        
        static getUniversities(callback){
            let universitiespath='/Universities'
            firebase.database.ref(universitiespath).on('value',(snapshot) => {
                let universities=''
                if(snapshot.val()){
                    universities=snapshot.val()
                }
                callback(universities)
            })
        }
        static getLanguajes(callback){
            let languajesPath='/Languajes'
            firebase.database.ref(languajesPath).on('value',(snapshot) => {
                let languajes=''
                if(snapshot.val()){
                    languajes=snapshot.val()
                }
                callback(languajes)
            })
        }
        static getCourses(callback){
            let coursesPath='/Courses'
            firebase.database.ref(coursesPath).on('value',(snapshot) => {
                let courses=''
                if(snapshot.val()){
                    courses=snapshot.val()
                }
                callback(courses)
            })
        }
        
        static getDays(callback){
            let dayspath='/Days'
            firebase.database.ref(dayspath).on('value',(snapshot) => {
                let days=''
                if(snapshot.val()){
                    days=snapshot.val()
                }
                callback(days)
            })
        }
        
        static getHours(callback){
            let hourspath='/Hours'
            firebase.database.ref(hourspath).on('value',(snapshot) => {
                let hours=''
                if(snapshot.val()){
                    hours=snapshot.val()
                }
                callback(hours)
            })
        }

        static setUniversityId(userId,university_id){
            let userPath="/tutor/"+userId+"/university_id"
            return firebase.database.ref(userPath).set(university_id)
        }
        static setUniversity(userId,university){
            let userPath="/tutor/"+userId+"/university"
            return firebase.database.ref(userPath).set(university)
        }
        static setFirstLog(userId,flag){
            let userPath="/users/"+userId+"/firstLog"
            return firebase.database.ref(userPath).set(flag)
        }  
        static setNumberSons(userId,number_sons){
            let userPath='/parents/'+userId+'/number_sons'
            return firebase.database.ref(userPath).set(number_sons)
        }      
        static setAddressToParent(userId,address){
            let userPath='/parents/'+userId+'/address'
            return firebase.database.ref(userPath).set(address)
        }
        static saveSonsInformation(userId,sons_data){
            let userPath='/sons/'+userId+'/sons_data'
            return firebase.database.ref(userPath).set(sons_data)
        }
        static saveCourseTutor(userId,course,number_courses){
            let userPath='/CoursesTutor/'+userId+'/'+(number_courses)+'/'
            return firebase.database.ref(userPath).set(course)
        }
        static saveAvailableTimeTutor(userId,time,number_available_time){
            let userPath='/AvailableTimeTutor/'+userId+'/'+(number_available_time)+'/'
            return firebase.database.ref(userPath).set(time)
        }
    }

module.exports = Helpers

Code: Select all

Archivo routes.js

import React from 'react';
import { Scene, Router, ActionConst, Stack, Modal, Tabs } from 'react-native-router-flux';

//Splash Component
import Splash from '../components/Splash/Splash';

//Authentication Scenes
import Welcome from '../modules/auth/scenes/Welcome';
import Register from '../modules/auth/scenes/Register';
import CompleteProfile from '../modules/auth/scenes/CompleteProfile';
import Login from '../modules/auth/scenes/Login';
import ForgotPassword from '../modules/auth/scenes/ForgotPassword';
import Home from '../modules/home/scenes/Home';
import RegisterStudent from '../modules/auth/scenes/RegisterStudent';
import HomeStudentValid from '../modules/home/scenes/HomeStudentValid';
import HomeParent from '../modules/home/scenes/HomeParent';
import HomePsychologist from '../modules/home/scenes/HomePsychologist';
import HomeTeacher from '../modules/home/scenes/HomeTeacher';
import AddCourseStudent from '../modules/home/scenes/AddCourse';
import AddAvailableTimeStudent from '../modules/home/scenes/AddAvailableTimeStudent';
import WatchAvailableTimeStudent from '../modules/home/scenes/WatchAvailableTimeStudent';
import WatchCoursesStudent from '../modules/home/scenes/WatchCoursesStudent';
import RegisterParent from '../modules/auth/scenes/RegisterParent';
import RegisterSons from '../modules/auth/scenes/RegisterSons';
import RegisterPsychologist from '../modules/auth/scenes/RegisterPsychologist';
import RegisterTeacher from '../modules/auth/scenes/RegisterTeacher';

import * as firebase from '../config/firebase'
import Helpers from '../config/helpers'

//Import Store, actions
import store from '../redux/store'
import { checkLoginStatus } from "../modules/auth/actions";

import { color, navTitleStyle } from "../styles/theme";

export default class extends React.Component {
    constructor() {
        super();
        this.state = {
            isReady: false,
            isLoggedIn: false,
            uid:'',
            firstLog: false,
            user_role: '',
            status: '',
            exist: false //indicates if user exist in realtime database
        }
        this.componentWillMount = this.componentWillMount.bind(this);
    }

    componentDidMount() {
        store.dispatch(checkLoginStatus((exist, isLoggedIn) => {
            this.componentWillMount(exist, isLoggedIn);
        }));
    }

    componentWillMount(exist, isLoggedIn){
        let _this = this;
        try{
            let user = firebase.auth.currentUser
            Helpers.getFirstLog(user.uid,(flag) => {
                this.setState({
                    firstLog:flag
                })
            })
            Helpers.getRole(user.uid,(role) => {
                this.setState({
                    user_role:role
                })
            })
            this.setState({
                uid:user.uid
            })
        }
        catch(error){
            console.log(error)
        }
        _this.setState({isReady: true, exist, isLoggedIn});
    }

    render() {
        if (!this.state.isReady)
            return <Splash/>
        return (
            <Router>
                <Scene key="root" hideNavBar
                       navigationBarStyle={{backgroundColor: "#fff"}}
                       titleStyle={navTitleStyle}
                       backButtonTintColor={color.black}>
                    <Stack key="Auth" initial={!this.state.isLoggedIn}>
                        <Scene key="Welcome" component={Welcome} title="" initial={true} hideNavBar/>
                        <Scene key="Register" component={Register} title="Register" back/>
                        <Scene key="CompleteProfile" component={CompleteProfile} title="Select Username" back={false}/>
                        <Scene key="Login" component={Login} title="Login"/>
                        <Scene key="ForgotPassword" component={ForgotPassword} title="Forgot Password"/>
                    </Stack>

                    <Stack key="RegisterStudentMain" initial={this.state.user_role == 1 && this.state.firstLog}>
                        <Scene key="RegisterStudent" component={RegisterStudent} title="Registro Estudiante como Tutor" initial={true} type={ActionConst.REPLACE}/>
                    </Stack>
                    <Stack key="RegisterParentMain" initial={this.state.user_role == 2 && this.state.firstLog}>
                        <Scene key="RegisterParent" component={RegisterParent} title="Registro de padres" initial={true} type={ActionConst.REPLACE}/>
                    </Stack>
                    <Stack key="RegisterTeacherMain" initial={this.state.user_role == 3 && this.state.firstLog}>
                        <Scene key="RegisterTeacher" component={RegisterTeacher} title="Registro de padres" initial={true} type={ActionConst.REPLACE}/>
                    </Stack>
                    <Stack key="RegisterPsychologistMain" initial={this.state.user_role == 4 && this.state.firstLog}>
                        <Scene key="RegisterPsychologist" component={RegisterPsychologist} title="Registro de padres" initial={true} type={ActionConst.REPLACE}/>
                    </Stack>
                    <Stack key="HomeStudentMain" initial={this.state.user_role == 1 && !this.state.firstLog}>
                        <Scene key="HomeStudentValid" component={HomeStudentValid} title="Inicio" initial={true} type={ActionConst.REPLACE}/>
                        <Scene key="AddCourseStudent" component={AddCourseStudent} title="Añadir Cursos" initial={false}/>
                        <Scene key="AddAvailableTimeStudent" component={AddAvailableTimeStudent} title="Añadir Hora de Disponibilidad" initial={false}/>
                        <Scene key="WatchAvailableTimeStudent" component={WatchAvailableTimeStudent} title="Tus horas disponibles" initial={false}/>
                        <Scene key="WatchCoursesStudent" component={WatchCoursesStudent} title="Tus cursos" initial={false}/>
                    </Stack>
                    <Stack key="HomeParentMain" initial={this.state.user_role == 2 && !this.state.firstLog}>
                        <Scene key="HomeParent" component={HomeParent} title="Inicio" initial={true} type={ActionConst.REPLACE}/>
                    </Stack>
                    <Stack key="HomeTeacherMain" initial={this.state.user_role == 3 && !this.state.firstLog}>
                        <Scene key="HomeTeacher" component={HomeTeacher} title="Inicio" initial={true} type={ActionConst.REPLACE}/>
                    </Stack>
                    <Stack key="HomePsychologistMain" initial={this.state.user_role == 4 && !this.state.firstLog}>
                        <Scene key="HomePsychologist" component={HomePsychologist} title="Inicio" initial={true} type={ActionConst.REPLACE}/>
                    </Stack>
                    <Stack key="RegisterSonsMain">
                        <Scene key="RegisterSons" component={RegisterSons} title="Registro de hijos" initial={true} type={ActionConst.REPLACE}/>
                    </Stack>
                </Scene>
            </Router>
        )
    }
}
Last edited by Valeriam04 on Thu Sep 13, 2018 8:40 pm, edited 1 time in total.
Valeria Moreno
Gestión de la calidad del Software

Post Reply