Giter VIP home page Giter VIP logo

omegaup / omegaup Goto Github PK

View Code? Open in Web Editor NEW
222.0 27.0 293.0 273.51 MB

omegaUp automatic programming contest evaluator & arena

Home Page: https://omegaup.com

License: Other

Shell 0.34% Python 3.97% C++ 0.01% PHP 58.93% HTML 2.74% JavaScript 2.06% CSS 0.40% Smarty 0.05% Scala 0.12% PLpgSQL 0.58% Vue 16.45% Java 0.01% TypeScript 14.12% Makefile 0.01% SCSS 0.23% Mustache 0.01% EJS 0.01%
hacktoberfest

omegaup's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

omegaup's Issues

Design: Cómo almacenamos el password?

Esta es la discusión hasta el momento:

  • [Users] Qué opinan de guardar los passwords en BINARY(20) usando
    SHA-1 en lugar de CHAR(32) usando MD5?

Parece que si nos queremos poner paranoicos, bcrypt es la opción.. qué
opinan? http://chargen.matasano.com/chargen/2007/9/7/enough-with-the-rainbow-tables-what-you-need-to-know-about-s.html

Aquí tengo que hacer una nota: hay que recordar que hay dos escenarios en
los que se va a usar la plataforma: en web normal y embebido. Si se puede
usar el BINARY, o su equivalente con H2 sin broncas, adelante :) y si no se
puede, pues total, usamos SHA-1 con CHAR(40), no hay problema :P

Según los docs de H2, dice que sí sabe tratar con BINARYs:
http://www.h2database.com/html/datatypes.html#binary_type

La idea de bajar a BINARY(20) es que gastas menos espacio (al menos a
la mitad) y comparas menos. Estoy de acuerdo con no optimizar
prematuramente, pero si eso no cuesta nada, creo que se puede hacer
desde ahorita.

El hashear lo hacemos en PHP. Había visto esta biblioteca:
http://www.openwall.com/phpass/ que dice saber bcrypt.

Badges-tags en v1 *nuevo*

A alguien se le ocurre una forma sencilla de implementar badges? Tal que podamos ponerlo, en v1 con prioridad baja.

Lo más straightforward que se me ocurre es, por el momento, sólo hacer badges que se desbloqueen por resolver cierto subconjunto de problemas. Por ejemplo 'newbie', 'tree master', 'macs', etc... Así podemos tener una tabla de Badges, otra tabla de BadgesProbs y otra tabla de BadgesConcursante, y cada que un concursante resuelva un problema, buscamos si tiene algun badge asociado, revisamos que cumpla todos los requisitos del badge y se lo colgamos :).

Esta forma no incluye badges que se desbloqueen por resolver en tiempo récord un problema u estar hasta arriba en la tabla de los que resolvieron un problema por tiempo.. pero bueno, esos los podriiiamos hard-codear de ser necesario (no me gusta D: ).

Saludos!

BDD: Falta tabla de Jueces

Sugerido por Pablo: No será mejor tener una tabla de jueces que se pueden
utilizar en lugar de que sea un enum (y si agregamos un juez, no hay
necesidad de modificar la estructura de la BD)?

Excepción al loggearse en omegaup usando Google auth

Copy-paste del mail original:

Que onda Alanboy, Zaiterska,
Ando montando omegaup beta en mi compu local. Me encontré con esta excepción al momento de loggearme. Mi BDD está vacía, así que si solo ocurre en esos casos que nunca van a pasar en el "live site" entonces ni se preocupen. Se las dejo por si creen que es relevante. Quieren que mejor la suba como issue al github? (sirve que lo organizo de una vez por todas :P ).

exception 'Exception' with message 'mysqlt error: [1048: Column 'email_id' cannot be null] in EXECUTE("INSERT INTO Emails ( email_id, email, user_id ) VALUES ( NULL, '[email protected]', '3');") ' in /Applications/XAMPP/xamppfiles/htdocs/omegaup/frontend/server/dao/base/Emails.dao.base.php:227 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/omegaup/frontend/server/dao/base/Emails.dao.base.php(51): EmailsDAOBase::create(Object(Emails)) #1 /Applications/XAMPP/xamppfiles/htdocs/omegaup/frontend/server/controllers/login.controller.php(62): EmailsDAOBase::save(Object(Emails)) #2 /Applications/XAMPP/xamppfiles/htdocs/omegaup/frontend/www/login.php(19): LoginController::login('joemmanuel@gmai...', 'https://www.goo...') #3 {main}


Alanboy:

Eso me huele a que en la base de datos no tiene email_id como autoincremento, dejame revisar.

API Frontend /runs/new

Implementar el frontend necesario en Javascript para enviar una solución a un problema /runs/new

Falta roles de usuario en BDD

Según mi análisis, es todo lo que falta en la BDD para soportar todos los features de la v1.
Pendiente instalarle Tiny ACL a la BDD.

API Scala /runs/new

Implementar en Scala lo necesario para enviar la solución a un problema /runs/new

API PHP /runs/new

Implementar el backend en PHP necesario para enviar una nueva solución a un problema /runs/new

Redacciones de los problemas

Creo que lo mejor será hacer una nueva tabla para guardar las redacciones, para de una vez tener soporte para las traducciones. Talvez podríamos ahí mismo guardar la(s) imagen(es) en un blob o guardar el link a un archivo.

API Frontend /runs/show/:id

Implementar el frontend necesario en Javascript para /runs/show/:id

Si el usuario tiene permiso, puede ver su solución y el estado de la misma (pending… grading… done… y la calificación).

Página para editar perfil

Deben poderse editar:

  • múltiples listas de correos
  • correo principal (para que Gravatar muestre la foto)

Modo entrenamiento perpetuo

[Creo que esto es...]
Mostrar el banco de problemas, permitir que envíen y llevar estadísticas de cada usuario.

API PHP /contests/:id/problem/:id

Implementar el backend en PHP necesario de /contests/:id/problem/:id :

Si el usuario puede verlo, muestra el contenido del problema y referencias a las soluciones que ha enviado ese problema. Por el momento, propongo diferenciar los problemas que se esten usando en un concurso en vivo de los que son "estáticos" por la URI. Es decir, un problema en vivo siempre estará dentro de un concurso, es por eso que requiere su concurso/:id/... En cambio, un problema estático podrá ser accesado en un futuro solamente por /problems/:id,

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.