Skip to content

St3plox/jcode

Repository files navigation

readme top


Jcode

Code execution platform


Report Bug · Request Feature . Documentation

Table of Contents
  1. About The Project
  2. Service design
  3. Getting Started
  4. Roadmap
  5. Contributing
  6. License
  7. Contact

Languages

About The Project

A simple code execution platform that uses docker container to execute code. Currently supports Go, Java, Python languages. Uses microservice architecture for backend and apache kafka for async communication between code service and execution worker.

(back to top)

Built With

  • Java
  • Spring
  • Golang
  • Apache-Kafka
  • PostgreSQL
  • Docker

(back to top)

Service design

jcode

(back to top)

Getting Started

At current state of the project you need to be able to launch gradle and go projects locally and Postgresql, kafka and zookeeper optionally via docker-compose or locally. In future I will dockerize all the services.

Prerequisites

*docker *docker-compose *java-17 *go-1.22 *gradle

Installation

  1. Clone the repo

    git clone https://github.com/St3plox/jcode
    cd jcode
  2. Launch kafka, zookeeper and postgresql servers.

    docker-compose up -d
  3. Run java services

     ./gradlew build
     ./gradlew :discovery-server:bootRun
     ./gradlew :auth-service:bootRun
     ./gradlew :api-gateway:bootRun
     ./gradlew :code-service:bootRun
     cd code-exec-worker
     go run ./cmd

(back to top)

Roadmap

  • Async execution
  • Documentation
  • Auth
  • Testing
  • More functionality (Tasks)

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Egor - [email protected]

(back to top)

(back to top)