GithubHelp home page GithubHelp logo

sijie123 / ioi-translation Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ioi-2019/ioi-translation

1.0 2.0 1.0 32.14 MB

Translation System developed by IOI2017 HTC team (updated by IOI 2020 HTC)

License: MIT License

Dockerfile 0.19% Python 14.45% Shell 0.18% CSS 7.67% JavaScript 70.15% HTML 7.36%
hacktoberfest

ioi-translation's Introduction

IOI Translation System

The IOI Translation System provides a web interface for translating the tasks (problems) into various languages during the International Olympiads in Informatics. The system has been developed and first used in the IOI 2017 in Tehran, Iran.

This fork is used in IOI 2020, Singapore.

Features

  • Markdown editor with mathematical expressions support
  • Support for right-to-left and southeastern languages
  • Embedded printing system
  • User-friendly editing environment with parallel view
  • PDF generation with custom fonts
  • Revision history with diff mode
  • Handy notification system
  • Full-featured admin page
  • Support for multiple contests
  • Dockerized and easy to develop and deploy

Deployment

ioi-translation is designed to be deployed on a Docker-compatible container platform. PostgreSQL and Redis are required for persistent storage and session store, respectively. Deployment behind reverse proxy such as nginx is recommended.

See docker-compose.yml for example deployment configurations (Note that docker-compose.yml in this repository is for development and not intended for use in production deployment).

Development Installation

You can install the translation system in just three steps:

  1. Install docker and docker-compose.
  2. Clone the project on your machine.
  3. Run docker-compose up -d.

At this point, you will have a copy of the translation system up and running at http://your_server_address:9000/. You may optionally perform the following tasks:

  • To create essential data for the system such as admin users and groups, run docker-compose exec app bash after the system has been started, and then in the shell, execute python3 manage.py loaddata initial_data.json for the very first time. Then exit from the shell by typing exit.
  • The default users are:
    • admin:ioipassword
    • staff:ioipassword
    • ISC:ioipassword
    • Usernames and passwords are case-sensitive.
  • For importing data such as countries, languages, and sample tasks, use the CSV importer in the admin console.
  • You can get access to the system logs by running docker-compose logs. To follow the logs from now on, run docker-compose logs -f --tail=0.
  • To stop the system, run docker-compose stop.

For using docker in development settings, add --reload option to the execution line of gunicorn in docker-entrypoint.sh file. Then run docker by docker-compose up --build.

Screenshots

Editing panel See more screenshots here.

License

This software is distributed under the MIT license, and uses third party libraries that are distributed under their own terms (see LICENSE-3RD-PARTY.txt).

Copyright

Copyright (c) 2017, IOI 2017 Host Technical Committee

ioi-translation's People

Contributors

emil916 avatar eqbals avatar hanazuki avatar jhasanov avatar miladameri avatar mshatoori avatar noidsirius avatar sijie123 avatar tyage avatar zarrabi avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

hanwentao

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.