Repository: Cloud-CV/EvalAI
Issue: Enhance EvalAI Wiki
GitHub labels: enhancement

Right now our documentation is not so enhanced and verbose, due to which process likes Developer Onboarding and Dev Environment Setup is not easy.

We need to enrich it. This issue will actually list down the heading and brief description of what the pages should be about.

Doc for setting up and running the testing suite is needed, right? Can I work on that?

@isht3: Thanks for the help, just that presently @deshraj and I are exactly not clear of what all docs we need. I have opened this issue so that we can have the discussion over here and also everyone can give in their suggestions. 

Once we finalize, what all basic documentation we need, then we may ask our awesome contributors(like you) to help us out. 

You can work on some other issue like #1002.

@TroJan Sounds good. :+1: 

Docs that should be added

* evalai architectural overview
* glossary of terms like challenges, phases,splits
* directory structure explained
* our roadmap
* a code style guideline
* using evalai for production
* documenting architecture decisions
* notes for maintainers and contributors

### evalai architectural overview

- a component wise diagram showing all the tech that we use
    - to mention Django, nginx, gunicorn/uwsgi, rabbitmq, submission worker, psql, memcached

- explain what, how and why we use each component

### directory structure explained

- core django specific files, like base project wide urls, settings
- settings according to env
- apps and what it signifies
- frontend files
- test suite
- available management commands
- scripts (helper also)

### our roadmap

- telling what have we done till now, and what is in our pipeline next
- some major issues/features for which we need help
- some tech debts(like changing underscore to hyphens in url patterns

### a code style guideline

- for frontend and backend both
- dont forget to include django specific things like migrations,
- url patterns for api
- some naming conventions (for sample data also) in test cases

### using evalai for production

- a comprehensive and detailed tutorial
- we may need to commit some deployment files(nginx, supervisord, uwsgi)

### documenting architecture decisions

- this [link](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions)
- more to infer and write
- like : leaderboard design, not using subprocess in worker

### notes for maintainers and contributors

- like how to change state of PR (WIP, Changes done, Completed) from contributors end
- change state of PR or add label for maintainer(review pending, reviewed, ready to be merged)

@deshraj : will be adding more to it.

@deshraj : will really appreciate your input here.

@dexter1691 : Can you have a look here and suggest what else should be added in our documentation ?

@deshraj : will appreciate your inputs too :)

@TroJan Is this going to be hosted as static pages or like what we have right now?

Hey, i would like to help with your docs. I am a content writer and a computer science student. 

Closing this since we have already setup the sphinx documentation.