Coder Social home page Coder Social logo

antiintuit's Introduction

AntiIntuit

(I'm against cheating and excuse me for this project. Study hard.)

AntiIntuit is a system that solves tests on website intuit.ru and stores results in database. AntiIntuit contains of the some components:

  • Accounts Manager - registers and deletes accounts
  • Courses Manager - checks courses
  • Tests Manager - checks tests and appoints tests to accounts
  • Tests Solver - solves tests
  • Session Manager - solves the problem of database collisions
  • Database API
  • Telegram Bot - gives tests results to users by Telegram

This project is using Python 3.7.4, Docker and Kubernetes.

How to run

docker

Firstly, you have to build the docker images and push them in your images repository because mine is private. You can do it by executing build.sh <repository_name>, for instance:

./build.sh maxsid/antiintuit

kubernetes

In yaml files specified 'antiintuit' namespace (see also ENV in Tests Solver yaml file).

Field image has images from my repository with imagePullSecrets. You should change these fields.

Also, you can create GrayLog server and create graylog-config ConfigMap:

kubectl create configmap graylog-config --from-literal="HOST=<host-to-graylog-server>"

Now run the next commands:

# secret with database data. Change NAME, USER, PASSWORD
kubectl create secret generic database-secret --from-literal="DATABASE_TYPE=mysql" \ 
    --from-literal="DATABASE_HOST=mariadb" --from-literal="DATABASE_NAME=<database-name>" \ 
    --from-literal="DATABASE_USER=<user>" --from-literal="DATABASE_PASSWORD=<password>"
# create MariaDB deploy
kubectl create -f kubernetes/mariadb/
# create tables in database
kubectl create -f kubernetes/antiintuit/jobs/database-init-job.yaml
# create PersistentVolumeClaim for the image storage:
kubectl create -f kubernetes/antiintuit/pvc/
# create all Cronjobs with Accounts Manager, Courses Manager and Tests Manager 
kubectl create -f kubernetes/antiintuit/cronjobs
# create Session Manager
kubectl create -f kubernetes/session-manager
# create Tests Solver
kubectl create -f kubernetes/antiintuit/endless-tests-solver
# create API
kubectl create -f kubernetes/antiintuit/api/
# create Telegram Bot with Redis storage
kubectl create -f kubernetes/tbot/redis
kubectl secret generic tbot-token --from-literal="token=<telegram-bot-token>"
kubectl create -f kubernetes/tbot/tbot

Database can fill out too long, but you already can use Telegram Bot

antiintuit's People

Contributors

maxsid avatar

Watchers

James Cloos avatar  avatar

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.