Code Monkey home page Code Monkey logo

udrive's Introduction

Trabajo Práctico de la asignatura Taller de Programación II - [75.52]

📚 Facultad de Ingeniería - Universidad de Buenos Aires


ℹ️ Udrive - Información del proyecto

🔗 Página web del proyecto

📓 Wiki del proyecto

:octocat: Repositorio del proyecto


💻 Servidor

Instalación y ejecución

Descargar la última versión del script de instalación:

Para la instalación:

sudo chmod 777 server_install_v0.5.sh

sudo ./server_install_v0.5.sh

Luego ejecutar el servidor con:

./server


📱 Cliente

Instalación y ejecución

Descargar el archivo apk de instalación (Android) correspondiente a la misma versión del servidor:


🔧 Herramientas - Estados

Docker

Docker Pulls

Travis CI

Build Status

Coveralls

Coverage Status


🔧 Docker

Para correr el servidor usando la imagen de docker, con docker instalado ejecutar

sudo docker run -p 0.0.0.0:8080:8080 martineq/tp7552:latest /bin/sh -c "./server"

udrive's People

Contributors

e-liva avatar martindonofrio avatar martineq avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

jontierno

udrive's Issues

Configuración del ambiente para el Servidor

Configuración del ambiente donde se correrá el Servidor, previendo la instalación de todas las librerías necesarias en el mismo. El ambiente se configurará a partir del uso de la herramienta Docker.

Devolver una unica estructura JSON por REQUEST

En todos los request desarrollados, enviar una ÚNICA estructura JSON como respuesta. Si no está el usuario, las carpetas, etc. enviar campos nulos o vacíos, pero siempre los mismos. Si el user no existe en el caso de /token, tomamos como convención enviar userId = 0

Creación de simple app Android a modo de introducción

Primeras nociones de programación y uso de la SDK de Android

  • Comprensión de la estructura de directorios y archivos de un proyecto en Android Studio
  • Armado de ejemplo breve para entender:
    • Clases Activity, View, Intent
    • Armado de layouts
    • Declaración y referenciación de recursos en XML (strings, dimens)
    • Seteo de theme (styles.xml)

Vincular Docker Hub con TravisCI y Coveralls.io

Vincular el uso de las herramientas Docker Hub con TravisCI y Coveralls.io para automatizar pruebas.

Se aprovechará el entorno de la imagen Docker -la cual se encontrará configurada para el uso del servidor- para correr las pruebas y subir los resultados del code coverage a Coveralls.io dentro del entorno de la herramienta TravisCI.

De esta forma se dejará de depender la configuración del entorno de TravisCI, sus dificultades para la instalación de dependencias, y su incompatibilidad con ciertas librerías, debido a que la herramienta se basa en Ubuntu:12.04.

Como beneficio extra, se obtendrá un tiempo de build mucho mas reducido en TravisCI.

Diseño pantalla Login

Diseño de la pantalla de Login de Usuario siguiendo las buenas practicas de diseño para Android.

Crear clase para manejo de datos en la BD

Crear una clase para manejo de datos en la BD, creando las firmas de sus principales métodos. La misma se encargará de manejar los datos necesarios para la interacción con el cliente. Se basará en los pedidos realizados por la API REST.

Estándares de codificación

Links a los estándares de codificación que vamos a usar para nuestro código fuente del lado del Cliente:

Links a los estándares de codificación que vamos a usar para nuestro código fuente del lado del Servidor:

  • Google C++ Style Guide, Incluye:
    1. Header Files
    2. Scoping
    3. Classes
    4. Google-Specific Magic
    5. Other C++ Features
    6. Naming
    7. Comments
    8. Formatting
    9. Exceptions to the Rules
  • Verificador automatizado para el estilo de codificación de C++ de Google: cpplint

El desarrollo del código fuente será en idioma inglés, tanto para el Servidor como para el Cliente.

Integrar un módulo para logging

Incluir las dependencias necesarias en el proyecto de Android para integrar una herramienta de logging de actividades, mensajes de debug, etc.

Configuración de librerías y herramientas del Servidor

Configuración de librerías y herramientas que serán necesarias para que el código del Servidor pueda ser desarrollado y corrido, con una previo estudio de las necesidades del proyecto. Como resultado se incluirán los archivos necesarios para su funcionamiento, dado un ambiente correctamente configurado.-

Configuración Android Studio

  • Descarga de SDK KitKat 4.4 (API 19).
  • Descarga de plugins SDK sugeridos por sitio oficial Android developers.
  • Descarga de imagen KitKat y configuración de AVD.

Crear ejemplos funcionales con Retrofit

Objetivos:

  • Comprender el funcionamiento básico de la API REST
  • Entender el uso y cómo estructurar el modelo del servicio de comunicación mediante Retrofit
  • Empezar a pensar en el diseño de los servicios reales que deberemos utilizar

Uso y publicación de los Issues para el proyecto

En nuestro proyecto los Issues serán empleados tanto para cuestiones de codificación como para planeamiento de tareas. Aquí reunimos algunas normas de publicación, aclarando que el contenido del mismo queda a criterio del que lo publica.

Definimos algunos puntos para poder organizarlos:

  • Debe tener un título descriptivo, pudiendo desarrollar los detalles en los comentarios del mismo. NO agregamos en el título labels "manuales", del estilo "[Tarea]..." ya que para eso usamos los labels que vienen con los issues.
  • Cada issue debe tener al menos un label para que pueda ser clasificado. En caso de ser necesario se pueden crear labels que no existan. Mientras mas clasificados se encuentren los issues, mas efectiva será su ayuda y administración.
  • Para el caso de las tareas se debe agregar por defecto el label task y debe asignarse una persona a la misma. Luego se podrá cerrar el issue al momento de concluir la tarea. Se recomienda tener tareas atomizadas para una correcta asignación y para evitar superposiciones con otros integrantes.
  • Para el caso de una práctica común para los integrantes del proyecto se agrega el label common practice y no se asigna a nadie en particular. Estos issues quedan siempre abiertos.
  • Existen los labels server y client para poder difenenciar tareas, bugs y demás cuestiones que surjan para los subproyectos realcionados al servidor o al cliente.
  • Para los demás casos que puedan manifestarse se agregan los labels necesarios, siempre tratando de utilizar el sentido común.

Creación inicial de directorios

Primer tarea del proyecto, donde se creará la estructura de los directorios básica a usar en el repositorio y se aprovechará también para tener un primer contacto con el uso del sistema Git. Se tendrá en cuenta que el mismo será usado para el desarrollo tanto del Servidor como del Cliente.-

Configuración inicial de Coveralls

Configuración inicial del servicio de web Coveralls, el cual realizará el code coverage del código correspondiente al Servidor. Se vinculará este servicio con el repositorio de GitHub.

SegFault al usar RocksDB en test dentro del ambiente Docker y Travis

Al ejecutar la prueba de RocksDB (un "hola mundo" básico donde se crea una BD se llena con datos y luego se la elimina, en LibraryTest.cpp) en el test dentro del ambiente Travis (Ubuntu 12.04) y Docker (Ubuntu 14.04), se produce un segmentation fault, cuando se realiza lo mismo en una máquina con Ubuntu 14.04 este error no se produce.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.