martineq / udrive Goto Github PK
View Code? Open in Web Editor NEWTrabajo Práctico de la Materia Taller de Programación II
Trabajo Práctico de la Materia Taller de Programación II
Vinculación del repositorio de GitHub con la plataforma de Docker, Docker Hub, para la posterior automatización del build.-
Diseño de la pantalla de Listados de documentos/carpetas a las que puede acceder el usuario siguiendo las buenas practicas de diseño para Android.
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.
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:
El desarrollo del código fuente será en idioma inglés, tanto para el Servidor como para el Cliente.
Crear sets de datos dentro de la DB del servidor para poder reproducir casos de uso con el cliente.
Objetivos:
Luego de implementada la API REST del lado del servidor, intentaremos una conexión con envío de mensajes reales de nuestra aplicación.
Se realizará la configuración inicial de test y de code coverage para el Servidor, que luego será disparada por la herramienta travis.
Configurar conexiones entrantes dentro del ambiente Docker, para poder correr el servidor y que el mismo obtenga las peticiones del cliente.-
Realizar una clase que implemente el uso básico que se le dará a la librería RocksDB
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.
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:
[Tarea]
..." ya que para eso usamos los labels que vienen con los issues.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.common practice
y no se asigna a nadie en particular. Estos issues quedan siempre abiertos.server
y client
para poder difenenciar tareas, bugs y demás cuestiones que surjan para los subproyectos realcionados al servidor o al cliente.Diseño de la pantalla de Login de Usuario siguiendo las buenas practicas de diseño para Android.
Necesario para concretar el login del usuario
Primeras nociones de programación y uso de la SDK de Android
Mart, como no soy el owner del proyecto no lo puedo integrar con Travis. Me haces owner?
Este servidor estará hosteado en DC y se accederá a través de una ip:port publica.
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
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.-
Objetivo: Hacer que arranque el servidor HTTP y resuelva algo.
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.
Configuración del archivo .travis.yml
para que el entorno pueda correr todas las pruebas del servidor, realize el code coverage y pueda enviar los datos a coveralls.io
Testing de métodos POST y PUT mediante un servidor online para pruebas: jsonplaceholder.typicode.com.
Utilización de cURL vía bash y RESTClient (add-on para Firefox)
// Nuevo servidor de pruebas: http://quick-entities.herokuapp.com
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.
Mostrar mensaje de error al usuario en caso de no ser válidas las credenciales ingresadas.
Realizar un análisis sobre las herramientas de test Google Test (GTest) para su uso en el proyecto, dentro del servidor.
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.-
Creación de un archivo CMake para compilación del código C++ relacionado al servidor.-
Tomar por parámetro la configuración del servidor
Incluir las dependencias necesarias en el proyecto de Android para integrar una herramienta de logging de actividades, mensajes de debug, etc.
Modelo base del cual se tomará como práctica de uso para el repositorio Git. En nuestro caso se usarán las ramas: master, develop y feature
A successful Git branching model
En la sección Network de nuestro repositorio se puede ver un diagrama de como avanzan las distintas ramas (solo las remotas).
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
.
Creación del proyecto inicial donde se comenzará a desarrollar el Cliente.
Se implementará el medotos para login/logout del lado del servidor.
Manejo de iconos y estilos para distintas resoluciones de pantalla
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.