pret-back's People
pret-back's Issues
Crear controlador de IdiomaCandidato
Crear controlador de IdiomaCandidato
Configuración inicial
Entidad
Agregar las anotaciones @AllArgsConstructor
, @NoArgsConstructor
, @Getter
y @Setter
al modelo.
@Entity
@Table(name = "modelos")
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
public class Modelo {}
POJO
Eliminar la anotación @Data
y poner en su lugar las anotaciones @AllArgsConstructor
, @NoArgsConstructor
, @Getter
y @Setter
.
+@Getter @Setter
@NoArgsConstructor @AllArgsConstructor
public class ModelPojo {}
Agregar anotaciones dependiendo las reglas que existan en los campos de base de datos.
Ejemplo:
/*** Model.java ***/
@Column(nullable = false, length = 50)
private String nombre;
@Column(nullable = true, name = "descripcion_perfil", columnDefinition = "text null")
private String descripcionPerfil;
/*** ModelPojo.java ***/
@NameFormat
@Size(max = 50)
@NotBlank
private String nombre;
@ParagraphFormat
private String descripcionPerfil;
Notar que existen anotaciones personalizas en la carpeta pret/validator
, es probable que algunas anotaciones puedan usarse en ciertos campos, como por ejemplo la descripcionPerfil
que es un campo de tipo text
y se le permite colocar más caracteres que un nombre.
Puedes suponer lo siguiente cuando un campo es obligatorio:
String
->@NotBlank
y alguna anotación personalizada (si aplica).Boolean
->@NotNull
Object
->@NotNull
En caso de tener dudas, checar los la aplicación en los POJOs los cuales ya cuentan con un controlador.
ApplicationSecurity.java
Las funciones del controlador que no requieran un JWT
, es necesario agregarlas en la configuración.
http
.authorizeRequests()
.antMatchers(
HttpMethod.POST,
"/auth/login",
"/candidato/registrar",
"/reclutador/registrar"
// Agregar aquí si usa @PostMapping
).permitAll()
.antMatchers(
HttpMethod.GET,
"/beneficio/**",
"/estado-republica/**",
"/estado-vacante/**",
"/idioma/**",
"/puesto/**",
"/universidad/**"
// Agregar aquí si usa @GetMapping
).permitAll()
.anyRequest().authenticated()
Controlador
Puedes revisar los controladores ya creados dentro del proyecto.
guardar (POST)
-
Requiere enviar un JWT
-
Consultar el candidato desde el
JWT
con su id, ya existe enCandidatoController.java
una manera de consultar el usuario desde el token. -
Parámetros
- IdiomaCandidatoPojo
-
Respuesta
- IdiomaCandidatoPojo con la información almacenada en base de datos.
eliminar (DELETE)
-
Requiere enviar un JWT
-
Verificar si el estudio pertenece al Candidato comparando el Id que viene dentro del
JWT
y el id cuando se consulta el estudio antes de eliminar. -
Parámetros
- IdiomaCandidatoPojo (es obligatorio que dentro venga con su id para saber que estudio actualizar)
-
Respuesta
- IdiomaCandidatoPojo con la información almacenada en base de datos.
Crear controlador de ExperienciaLaboral
Crear controlador de ExperienciaLaboral
Configuración inicial
Entidad
Agregar las anotaciones @AllArgsConstructor
, @NoArgsConstructor
, @Getter
y @Setter
al modelo.
@Entity
@Table(name = "modelos")
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
public class Modelo {}
POJO
Eliminar la anotación @Data
y poner en su lugar las anotaciones @AllArgsConstructor
, @NoArgsConstructor
, @Getter
y @Setter
.
+@Getter @Setter
@NoArgsConstructor @AllArgsConstructor
public class ModelPojo {}
Agregar anotaciones dependiendo las reglas que existan en los campos de base de datos.
Ejemplo:
/*** Model.java ***/
@Column(nullable = false, length = 50)
private String nombre;
@Column(nullable = true, name = "descripcion_perfil", columnDefinition = "text null")
private String descripcionPerfil;
/*** ModelPojo.java ***/
@NameFormat
@Size(max = 50)
@NotBlank
private String nombre;
@ParagraphFormat
private String descripcionPerfil;
Notar que existen anotaciones personalizas en la carpeta pret/validator
, es probable que algunas anotaciones puedan usarse en ciertos campos, como por ejemplo la descripcionPerfil
que es un campo de tipo text
y se le permite colocar más caracteres que un nombre.
Puedes suponer lo siguiente cuando un campo es obligatorio:
String
->@NotBlank
y alguna anotación personalizada (si aplica).Boolean
->@NotNull
Object
->@NotNull
En caso de tener dudas, checar los la aplicación en los POJOs los cuales ya cuentan con un controlador.
ApplicationSecurity.java
Las funciones del controlador que no requieran un JWT
, es necesario agregarlas en la configuración.
http
.authorizeRequests()
.antMatchers(
HttpMethod.POST,
"/auth/login",
"/candidato/registrar",
"/reclutador/registrar"
// Agregar aquí si usa @PostMapping
).permitAll()
.antMatchers(
HttpMethod.GET,
"/beneficio/**",
"/estado-republica/**",
"/estado-vacante/**",
"/idioma/**",
"/puesto/**",
"/universidad/**"
// Agregar aquí si usa @GetMapping
).permitAll()
.anyRequest().authenticated()
Controlador
Puedes revisar los controladores ya creados dentro del proyecto.
guardar (POST)
-
Requiere enviar un JWT
-
Consultar el candidato desde el
JWT
con su id, ya existe enCandidatoController.java
una manera de consultar el usuario desde el token. -
Parámetros
- ExperienciaLaboralPojo
-
Respuesta
- ExperienciaLaboralPojo con la información almacenada en base de datos.
actualizar (POST)
-
Requiere enviar un JWT
-
Verificar si el estudio pertenece al Candidato comparando el Id que viene dentro del
JWT
y el id cuando se consulta el estudio antes de actualizar. -
Parámetros
- ExperienciaLaboralPojo (es obligatorio que dentro venga con su id para saber que estudio actualizar)
-
Respuesta
- ExperienciaLaboralPojo con la información almacenada en base de datos.
eliminar (DELETE)
-
Requiere enviar un JWT
-
Verificar si el estudio pertenece al Candidato comparando el Id que viene dentro del
JWT
y el id cuando se consulta el estudio antes de eliminar. -
Parámetros
- ExperienciaLaboralPojo (es obligatorio que dentro venga con su id para saber que estudio actualizar)
-
Respuesta
- ExperienciaLaboralPojo con la información almacenada en base de datos.
Corrección en la actualización de Candidato
Retornar los roles con los que cuenta el usuario al iniciar sesión
Corrección en la actualización de un Reclutador
Algunos campos del reclutador no son actualizados, favor de revisarlo.
Cambia todos los Date por LocalDate
Crear controllers de clases tipo Catalogo
Crear los controladores de las siguientes clases de tipo Catalogo:
- EstadoRepublica
- EstadoVacante
- Idioma
- Puesto
- Rol
- Universidad
Pasos para crear el controlador de las clases de tipo Catalogo
- Agrega las anotaciones
@NoArgsConstructor
y@AllArgsConstructor
a la entidad y clase POJO que vas a crear el controlador.
Ejemplo:
@Entity
@Table(name = "beneficios")
@NoArgsConstructor
@AllArgsConstructor
public class Beneficio extends Catalogo {}
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class BeneficioPojo extends CatalogoPojo {}
- Crea un nuevo archivo controlador.
Para crear este archivo controlador, puedes basarte en el archivo BeneficioController.java
, incluso es posible copiar y pegar su contenido para crear tu controlador.
Debes de adaptar todos los textos del título dependiendo el nombre de la entidad y también cambiar los nombres de las clases de Beneficio por la entidad.
Manejo de mensajes de error para diferentes escenarios durante una petición
Crea un handler de errores que nos ayude a controlar ciertos eventos como un BAD_REQUEST, NOT_FOUND o Validaciones en los campos.
Tiene como objetivo regresar al front mensajes de error en caso de que haya sucesido algo malo.
Agregar validación de contraseña segura en AuthController
Método de listar las postulaciones de un candidato (traer las postulaciones a las que se regustro para visualizar su estado)
Actualización unicamente de la foto del Candidato y Reclutador
Retorno de una respuesta segura para manejo de errores para el front
Crear controlador de Curso
Crear controlador de Curso
Configuración inicial
Entidad
Agregar las anotaciones @AllArgsConstructor
, @NoArgsConstructor
, @Getter
y @Setter
al modelo.
@Entity
@Table(name = "modelos")
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
public class Modelo {}
POJO
Eliminar la anotación @Data
y poner en su lugar las anotaciones @AllArgsConstructor
, @NoArgsConstructor
, @Getter
y @Setter
.
+@Getter @Setter
@NoArgsConstructor @AllArgsConstructor
public class ModelPojo {}
Agregar anotaciones dependiendo las reglas que existan en los campos de base de datos.
Ejemplo:
/*** Model.java ***/
@Column(nullable = false, length = 50)
private String nombre;
@Column(nullable = true, name = "descripcion_perfil", columnDefinition = "text null")
private String descripcionPerfil;
/*** ModelPojo.java ***/
@NameFormat
@Size(max = 50)
@NotBlank
private String nombre;
@ParagraphFormat
private String descripcionPerfil;
Notar que existen anotaciones personalizas en la carpeta pret/validator
, es probable que algunas anotaciones puedan usarse en ciertos campos, como por ejemplo la descripcionPerfil
que es un campo de tipo text
y se le permite colocar más caracteres que un nombre.
Puedes suponer lo siguiente cuando un campo es obligatorio:
String
->@NotBlank
y alguna anotación personalizada (si aplica).Boolean
->@NotNull
Object
->@NotNull
En caso de tener dudas, checar los la aplicación en los POJOs los cuales ya cuentan con un controlador.
ApplicationSecurity.java
Las funciones del controlador que no requieran un JWT
, es necesario agregarlas en la configuración.
http
.authorizeRequests()
.antMatchers(
HttpMethod.POST,
"/auth/login",
"/candidato/registrar",
"/reclutador/registrar"
// Agregar aquí si usa @PostMapping
).permitAll()
.antMatchers(
HttpMethod.GET,
"/beneficio/**",
"/estado-republica/**",
"/estado-vacante/**",
"/idioma/**",
"/puesto/**",
"/universidad/**"
// Agregar aquí si usa @GetMapping
).permitAll()
.anyRequest().authenticated()
Controlador
Puedes revisar los controladores ya creados dentro del proyecto.
guardar (POST)
-
Requiere enviar un JWT de candidato
-
Consultar el candidato desde el
JWT
con su id, ya existe enCandidatoController.java
una manera de consultar el usuario desde el token. -
Parámetros
- CursoPojo
-
Respuesta
- CursoPojo con la información almacenada en base de datos.
eliminar (DELETE)
-
Requiere enviar un JWT de candidato
-
Verificar si el curso pertenece al Candidato comparando el Id que viene dentro del
JWT
y el id cuando se consulta el curso antes de eliminar. -
Parámetros
- CursoPojo ID
@PathVariable
- CursoPojo ID
-
Respuesta
- CursoPojo con la información almacenada en base de datos.
obtener por candidato (GET)
-
Obtener todos los cursos de un candidato.
-
Respuesta
- Lista de CursoPojo.
Agregar el campo habilitado en el Pojo de usuario
agregar el campo habilitado como se muestra en el modelo de usuario
Configuración de CORS
Crear controlador de Estudio
Crear controlador de Estudio
Configuración inicial
Entidad
Agregar las anotaciones @AllArgsConstructor
, @NoArgsConstructor
, @Getter
y @Setter
al modelo.
@Entity
@Table(name = "modelos")
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
public class Modelo {}
POJO
Eliminar la anotación @Data
y poner en su lugar las anotaciones @AllArgsConstructor
, @NoArgsConstructor
, @Getter
y @Setter
.
+@Getter @Setter
@NoArgsConstructor @AllArgsConstructor
public class ModelPojo {}
Agregar anotaciones dependiendo las reglas que existan en los campos de base de datos.
Ejemplo:
/*** Model.java ***/
@Column(nullable = false, length = 50)
private String nombre;
@Column(nullable = true, name = "descripcion_perfil", columnDefinition = "text null")
private String descripcionPerfil;
/*** ModelPojo.java ***/
@NameFormat
@Size(max = 50)
@NotBlank
private String nombre;
@ParagraphFormat
private String descripcionPerfil;
Notar que existen anotaciones personalizas en la carpeta pret/validator
, es probable que algunas anotaciones puedan usarse en ciertos campos, como por ejemplo la descripcionPerfil
que es un campo de tipo text
y se le permite colocar más caracteres que un nombre.
Puedes suponer lo siguiente cuando un campo es obligatorio:
String
->@NotBlank
y alguna anotación personalizada (si aplica).Boolean
->@NotNull
Object
->@NotNull
En caso de tener dudas, checar los la aplicación en los POJOs los cuales ya cuentan con un controlador.
ApplicationSecurity.java
Las funciones del controlador que no requieran un JWT
, es necesario agregarlas en la configuración.
http
.authorizeRequests()
.antMatchers(
HttpMethod.POST,
"/auth/login",
"/candidato/registrar",
"/reclutador/registrar"
// Agregar aquí si usa @PostMapping
).permitAll()
.antMatchers(
HttpMethod.GET,
"/beneficio/**",
"/estado-republica/**",
"/estado-vacante/**",
"/idioma/**",
"/puesto/**",
"/universidad/**"
// Agregar aquí si usa @GetMapping
).permitAll()
.anyRequest().authenticated()
Controlador
Puedes revisar los controladores ya creados dentro del proyecto.
guardar (POST)
-
Requiere enviar un JWT
-
Consultar el candidato desde el
JWT
con su id, ya existe enCandidatoController.java
una manera de consultar el usuario desde el token. -
Parámetros
- EstudioPojo
-
Respuesta
- EstudioPojo con la información almacenada en base de datos.
actualizar (POST)
-
Requiere enviar un JWT
-
Verificar si el estudio pertenece al Candidato comparando el Id que viene dentro del
JWT
y el id cuando se consulta el estudio antes de actualizar. -
Parámetros
- EstudioPojo (es obligatorio que dentro venga con su id para saber que estudio actualizar)
-
Respuesta
- EstudioPojo con la información almacenada en base de datos.
eliminar (DELETE)
-
Requiere enviar un JWT
-
Verificar si el estudio pertenece al Candidato comparando el Id que viene dentro del
JWT
y el id cuando se consulta el estudio antes de eliminar. -
Parámetros
- EstudioPojo (es obligatorio que dentro venga con su id para saber que estudio actualizar)
-
Respuesta
- EstudioPojo con la información almacenada en base de datos.
Pojo Classes
Crear clases Pojo para la transacción de datos entre el front-end y back-end.
Crear controlador de Postulación
Crear controlador para Candidato y Reclutador
El controlador deberá de tener las siguientes funcionalidades:
- Obtener por Id
- Guardar (considerar que se utilizará para guardar y actualizar)
- Eliminar
Crear controlador de Contacto
Agregar el campo de habilitado al modelo de Usuario
Al modelo de usuario le hace falta el campo de habilitado, este campo es necesario para cuando se implemente el inicio de sesión mediante tokens.
Este campo debe de ir debajo del campo de contraseña, debe de ser booleano y por defecto (por el momento, quizás esto cambie en el futuro) dejaremos como valor default 1, osea que se encuentre activado desde un principio.
Cambia el nombre de todo lo relacionado con CandidatoVacante a Postulación
Este nombre de Postulación es más correcto para que cualquier persona que venga a leer el repositorio entienda lo qué es una postulación
Técnicamente, puedes usar el Ctrl + Shift + R para reemplazar todas las apariciones de CandidatoVacante a Postulacion.
Entidades
Crear las entidades que ayudaran a crear la base de datos.
Crear controlador de Vacante
Crear controlador de Vacante
Configuración inicial
Entidad
Agregar las anotaciones @AllArgsConstructor
, @NoArgsConstructor
, @Getter
y @Setter
al modelo.
@Entity
@Table(name = "modelos")
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
public class Modelo {}
POJO
Eliminar la anotación @Data
y poner en su lugar las anotaciones @AllArgsConstructor
, @NoArgsConstructor
, @Getter
y @Setter
.
+@Getter @Setter
@NoArgsConstructor @AllArgsConstructor
public class ModelPojo {}
Agregar anotaciones dependiendo las reglas que existan en los campos de base de datos.
Ejemplo:
/*** Model.java ***/
@Column(nullable = false, length = 50)
private String nombre;
@Column(nullable = true, name = "descripcion_perfil", columnDefinition = "text null")
private String descripcionPerfil;
/*** ModelPojo.java ***/
@NameFormat
@Size(max = 50)
@NotBlank
private String nombre;
@ParagraphFormat
private String descripcionPerfil;
Notar que existen anotaciones personalizas en la carpeta pret/validator
, es probable que algunas anotaciones puedan usarse en ciertos campos, como por ejemplo la descripcionPerfil
que es un campo de tipo text
y se le permite colocar más caracteres que un nombre.
Puedes suponer lo siguiente cuando un campo es obligatorio:
String
->@NotBlank
y alguna anotación personalizada (si aplica).Boolean
->@NotNull
Object
->@NotNull
En caso de tener dudas, checar los la aplicación en los POJOs los cuales ya cuentan con un controlador.
ApplicationSecurity.java
Las funciones del controlador que no requieran un JWT
, es necesario agregarlas en la configuración.
http
.authorizeRequests()
.antMatchers(
HttpMethod.POST,
"/auth/login",
"/candidato/registrar",
"/reclutador/registrar"
// Agregar aquí si usa @PostMapping
).permitAll()
.antMatchers(
HttpMethod.GET,
"/beneficio/**",
"/estado-republica/**",
"/estado-vacante/**",
"/idioma/**",
"/puesto/**",
"/universidad/**"
// Agregar aquí si usa @GetMapping
).permitAll()
.anyRequest().authenticated()
Controlador
Puedes revisar los controladores ya creados dentro del proyecto.
guardar (POST)
-
Requiere enviar un JWT de reclutador
-
Consultar el reclutador desde el
JWT
con su id, ya existe enReclutadorController.java
una manera de consultar el usuario desde el token. -
Parámetros
- VacantePojo
-
Respuesta
- VacantePojo con la información almacenada en base de datos.
actualizar (POST)
-
Requiere enviar un JWT de reclutador
-
Verificar si el vacante pertenece al Reclutador comparando el Id que viene dentro del
JWT
y el id cuando se consulta el vacante antes de actualizar. -
Parámetros
- VacantePojo (es obligatorio que dentro venga con su id para saber que vacante actualizar)
-
Respuesta
- VacantePojo con la información almacenada en base de datos.
eliminar (DELETE)
-
Requiere enviar un JWT de reclutador
-
Verificar si el vacante pertenece al Reclutador comparando el Id que viene dentro del
JWT
y el id cuando se consulta el vacante antes de eliminar. -
Parámetros
- VacantePojo (es obligatorio que dentro venga con su id para saber que vacante eliminar)
-
Respuesta
- VacantePojo con la información almacenada en base de datos.
obtener (GET)
-
Obtener todas las vacantes disponibles.
-
Respuesta
- Lista de VacantePojo que se encuentren disponibles, ordenadas primero a las más actuales.
obtenerPorReclutador (GET)
-
Obtener todas las vacantes que tiene un reclutador.
-
Requiere enviar un JWT de reclutador
-
Respuesta
- Lista de VacantePojo que se encuentren disponibles, ordenadas primero a las más actuales.
compartirVacante (POST)
-
Requiere enviar un JWT de candidato
-
Parámetros
- Id de una vacante
- Id de un candidato
-
Acción
- Enviar un correo electrónico al candidato con la información de la vacante
listaCandidatos (GET)
-
Requiere enviar un JWT de reclutador
-
Retornar la lista de candidatos filtrados por estado de Vacante.
-
Parámetros
- Id de una vacante
-
Retorno: Objeto con tres listas de candidatos
- rechazados: Candidatos que han sido rechazados para la vacante
- idóneos: Candidato que se consideran idóneos para la vacante
- otros: Candidatos con otros estados
Crear controlador de Certificación
Crear controlador de Certificacion
Configuración inicial
Entidad
Agregar las anotaciones @AllArgsConstructor
, @NoArgsConstructor
, @Getter
y @Setter
al modelo.
@Entity
@Table(name = "modelos")
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
public class Modelo {}
POJO
Eliminar la anotación @Data
y poner en su lugar las anotaciones @AllArgsConstructor
, @NoArgsConstructor
, @Getter
y @Setter
.
+@Getter @Setter
@NoArgsConstructor @AllArgsConstructor
public class ModelPojo {}
Agregar anotaciones dependiendo las reglas que existan en los campos de base de datos.
Ejemplo:
/*** Model.java ***/
@Column(nullable = false, length = 50)
private String nombre;
@Column(nullable = true, name = "descripcion_perfil", columnDefinition = "text null")
private String descripcionPerfil;
/*** ModelPojo.java ***/
@NameFormat
@Size(max = 50)
@NotBlank
private String nombre;
@ParagraphFormat
private String descripcionPerfil;
Notar que existen anotaciones personalizas en la carpeta pret/validator
, es probable que algunas anotaciones puedan usarse en ciertos campos, como por ejemplo la descripcionPerfil
que es un campo de tipo text
y se le permite colocar más caracteres que un nombre.
Puedes suponer lo siguiente cuando un campo es obligatorio:
String
->@NotBlank
y alguna anotación personalizada (si aplica).Boolean
->@NotNull
Object
->@NotNull
En caso de tener dudas, checar los la aplicación en los POJOs los cuales ya cuentan con un controlador.
ApplicationSecurity.java
Las funciones del controlador que no requieran un JWT
, es necesario agregarlas en la configuración.
http
.authorizeRequests()
.antMatchers(
HttpMethod.POST,
"/auth/login",
"/candidato/registrar",
"/reclutador/registrar"
// Agregar aquí si usa @PostMapping
).permitAll()
.antMatchers(
HttpMethod.GET,
"/beneficio/**",
"/estado-republica/**",
"/estado-vacante/**",
"/idioma/**",
"/puesto/**",
"/universidad/**"
// Agregar aquí si usa @GetMapping
).permitAll()
.anyRequest().authenticated()
Controlador
Puedes revisar los controladores ya creados dentro del proyecto.
guardar (POST)
-
Requiere enviar un JWT de candidato
-
Consultar el candidato desde el
JWT
con su id, ya existe enCandidatoController.java
una manera de consultar el usuario desde el token. -
Parámetros
- CertificacionPojo
-
Respuesta
- CertificacionPojo con la información almacenada en base de datos.
eliminar (DELETE)
-
Requiere enviar un JWT de candidato
-
Verificar si el certificacion pertenece al Candidato comparando el Id que viene dentro del
JWT
y el id cuando se consulta el certificacion antes de eliminar. -
Parámetros
- CertificacionPojo ID
@PathVariable
- CertificacionPojo ID
-
Respuesta
- CertificacionPojo con la información almacenada en base de datos.
obtener por candidato (GET)
-
Obtener todos los certificaciones de un candidato.
-
Respuesta
- Lista de CertificacionPojo.
Corregir ciclado de datos al traer los candidatos de una vacante (postulación)
Implementación de seguridad con Tokens y encriptación de contraseñas
Crear controller de ejemplo para catalogos
Este controlador ayudará como template para crear los demás controladores para las tablas que funcionan como catálogos.
Configurar en el application.properties de ejemplo para que la ruta default inicie con /api
Crear configuración para envío de correos electrónicos.
Crear Service y Repositories
Los Services y Repositories nos ayudarán a realizar operaciones en Base de datos.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.