MasterIceZ / task-pdf-writer

A pdf writer for competitive programming task statements

Home Page:https://pdf.graders.me

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

v.1.2.1 stable update (Yes I surely hope it is stable)

This project is a website as a tool/service to maintain PDF production for competitive programming tasks. The PDFs generated by this tool have the same appearance as from the IOI's translation system. In fact, this project's back-end is copied and modified from IOI 2017's translation system to support the serverless framework (to reduce operation costs). The back-end uses the serverless framework on AWS Lambda. For the front-end, this project uses firebase, Next.js, and Vercel.

The main website is hosted here. However, you can fork, edit, and host your own versions too.

Feel free to open pull requests if you want to contribute 😃. Also, if you found any bugs or problems please report by creating new GitHub issues.

Getting Started (front-end and Nextjs back-end)

First, install dependencies:

yarn

This project requires two additional environment variables: FIREBASE_PRIVATE_KEY and COOKIE_SECRET_CURRENT. FIREBASE_PRIVATE_KEY is the private key of the firebase project. In case of external development, you can start a new firebase project and generate the private key. After that you'll need to edit the firebase config in constants.ts. For COOKIE_SECRET_CURRENT, this can be any secure random string.

Then run the development server:

yarn dev

Open http://localhost:3000 with your browser to see the result.

Getting Started (AWS back-end)

First, change directory to aws-python-api and install dependencies:

cd aws-python-api
npm i

Most of the installing tasks are done in the Dockerfile. You'll need to have docker installed before building docker images locally.

For anything else, you can edit the files as a serverless project. You'll need to login to serverless in order to deploy, then npm run deploy to deploy.

About

A pdf writer for competitive programming task statements

https://pdf.graders.me

License:MIT License


Languages

Language:JavaScript 82.4%Language:CSS 7.8%Language:TypeScript 6.7%Language:Python 1.4%Language:HTML 1.3%Language:Less 0.2%Language:Dockerfile 0.2%