Giter Club home page Giter Club logo

dojopuzzles's Introduction

DojoPuzzles.com

O que é?

No início de cada sessão de Coding Dojo é escolhido um problema simples para ser resolvido. Na Internet existem centenas de fontes de problemas (além de problemas criados pelos próprios participantes). Nestas fontes existem problemas de diversos tipos, organizadas de diversas maneiras, que podem ou não ser adequados para os objetivos de um Dojo.

A proposta deste projeto é criar um local onde problemas possam ser armazenados e consultados facilmente, além de ser possível saber quais problemas realmente são usados em Dojos. Os problemas armazenados na nossa base de dados devem ter sido preferencialmente utilizados em Dojos (mas problemas inéditos também são bem-vindos) e os visitantes são convidados a contribuir com novos problemas.

Onde está?

Aqui

Quero ajudar!

Voce pode ajudar de diversas maneiras

  1. Enviando novo problemas.

  2. Sugerindo novas funcionalidades para serem desenvolvidas.

  3. Codificando uma nova funcionalidade ou corrigindo algum bug.

Bitdeli Badge

Development

All code must be formatted using black and isort. pre-commit hooks are available so make sure to install and ensure they are executed then before submitting any code to the project.

pip install -r requirements-dev.txt
pre-commit install

dojopuzzles's People

Contributors

berrondo avatar bitdeli-chef avatar cesarfrias avatar deniscostadsc avatar fsouza avatar latorre avatar rennerocha avatar tarsisazevedo avatar

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dojopuzzles's Issues

Armazenar contribuições na base de dados

Como
responsável pelo site
Eu quero
que os problemas recebidos através do formulário de contribuição já sejam armazenados na base de dados como um problema não publicado
Para
facilitar a edição e posterior publicação deles

Migrate data from current database

To implement #29 it is very likely that we will have changes in database structure, so to keep the existing problems in the new models, we will need a script that do the migration from one schema to another.

This will require #29 to be solved first, and then finish this script so we can move the upgraded version in production.

Ordenação pela última utilização dos problemas mais utilizados

Eu tenho 4 problemas utilizados mais do que duas vezes. Em seguida o problema5 é utilizado e algum tempo depois o problema6 é utilizado, então o problema6 foi utilizado mais recentemente. Por este motivo ele deve aparecer na listagem dos 5 problemas mais utilizados (junto com os outros 4 problemas indicados acima).

Porém, o problema5 é que aparece. Não está considerando a última data de utilização para ordenar os resultados.

O teste teste_so_exibe_os_5_ultimos_mais_utilizados(self) de templatetag_test.py está quebrado por este motivo.

Enviar solução de problemas

Como um
programador legal
Eu quero
enviar a (minha solução|solução do meu grupo de Dojo) de um problema para o DojoPuzzles.com
Para que
outras pessoas possam ver diferentes formas de resolver o mesmo problema

Add markdown support for problem formatting

Problems are stored and displayed as plain text. It is enough for the majority of them, but sometimes it would be great if we could describe the problems with a little more formatting options (like code blocks, mono spaced areas, proper lists, headers, etc).

My idea is to add support to Markdown formatting, so the problems are stored as Markdown and when displayed, we format them based on it.

Open to discuss how to implement this.

Acesso rápido ao problema escolhido

Como
um programador resolvendo um problema em um Dojo
Eu quero
ter acesso fácil ao problema que eu escolhi para resikver
Para que
se eu continue navegando no site, eu consiga retornar logo ao meu problema escolhido

Translate source code to english

When the project started, I had no idea how long it would last so I didn't care much about naming things.
As a personal rule, all code that I made now must be written in english, so we need to translate everything in code (class, methods, package names, etc) from portuguese to english.

Add categories to the problems

Add to problems a way to categorize them, so it will be possible to search problems by type (like mathematics, string manipulation, etc) or difficulty (easy, medium, etc). It can be some tagging library or just keep it simple and create a new model to store that information.

We can split this issue in two parts (the first is a blocker for the second):

  • labels/tags/categories to one problem (each problem can have more than one of each) and show them in problem details;
    - [ ] Think a way to allow the user search by this categories in UI (and create a new issue to handle it) leave this for a separated issue

Receive problems contributions

We need to be able to receive problems contributions.
Simplest solution would be create a form where the contributor fill with the problem information and then send that content to a configurable email (I will re-enable [email protected] again). These contributions should not be published before an admin select that (we can use Django admin for that, so it is not a concern for this issue).

Novo front-end

Como o dojopuzzles está sendo reimplementado como uma API, é necessário refazer o front-end para utilizar essa API.

Envio de arquivos na contribuição

Como um
visitante
Eu quero
poder enviar arquivos relacionados a um problema que estou contribuindo (massa de dados, imagens, etc)
Para que
seja mais simples compreender os problemas que eu envio

TypeError at /problems/random/

When setting up the project and the database and the are no problems at the base yet occurs a TypeError at /problems/random/ when accessing the "Problema Aleatório" on the index page.
image

Indicar dificuldade dos problemas

Como um
responsável do site
Eu quero
indicar a dificuldade dos problemas
Para que
os visitantes possam escolher os problemas com mais facilidade

CONTRIBUTING file

Create a CONTRIBUTING file explaining how to contribute with the project.

New front end design

The look of the page is 10 years old (and I am not a frontend developer or designer). We need to improve it with a new design for the page. I want it to be simple, not using fancy JS frameworks. Just new improved CSS styles to make the page looks better and responsive would be fine. Special attention to the problem description area. I don't like the font used and how the problem appears.

Include demo fixture

to use whith loaddata (:D) specially at gitpod.io or local development enviroments...

Upgrade Django version

As the project started almost 10 years ago, and the last change was made 7 years ago, we need to upgrade code for a newer Django version (current is 1.4).

As the models and views that exists are very simple (nothing particularly complex or using advanced Django features), I don't believe it will be too complicated to upgrade it (but probably I am entirely wrong and I have no idea the effort that will be needed).

Melhorar o recebimento de novos problemas

Atualmente para enviar um novo problema, é necessário preencher um formulário.
Houve uma sugestão de que novos problemas pudessem ser enviados através de PR aqui no Github.
Talvez formatar os problemas com markdown para facilitar isso.
Necessário algum script para fazer deploy desses problemas na base de dados e atualização, caso haja alguma correção em algum deles.

Comentários no problema

Como um
visitante
Eu quero
poder enviar comentários sobre um problema
Para que
eu possa compartilhar informações com outras pessoas sobre este problema

Configure application to use Docker

At this moment, the project is deployed in a shared host with a dedicated PostgreSQL database. I want to leave this provider and move the project to a Digital Ocean droplet (or similar). I want to use Docker to orchestrate that so I need a docker-compose.yml file (and the required Dockerfiles) with:

  • Django application
  • PostgreSQL as container
  • Static files running in nginx
  • Ready for SSL configuration.

As a bonus, a docker-compose-dev.yml file to make configure development environment easier will be good.

Add categories to problems

As a

programmer

I want

Visualize problems by category

In order to

I can choose problems by mathematics || string manipulation || difficulty || etc

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.