├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── feature_request.md │ ├── institution-add-request.md │ └── test-case.md ├── README.md ├── author-documentation.md └── contest-participation.md /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Browser information (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Additional context** 32 | Add any other context about the problem here. 33 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/institution-add-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Institution add request 3 | about: Institution add request template 4 | title: Institution add Request [Institution Name] 5 | labels: Institution-add-request 6 | assignees: '' 7 | 8 | --- 9 | 10 | Please make sure there is no other related issue about this institution add request. 11 | 12 | Please provide the information below: 13 | 14 | 1. Institution Name: 15 | 2. Website: 16 | 3. Logo Url: 17 | 4. Country: 18 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/test-case.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Test Case Issue 3 | about: If you see any test case issue such as weak test case, wrong test case 4 | title: Test case issue [Problem Name] 5 | labels: test-case 6 | assignees: '' 7 | 8 | --- 9 | 10 | Please provide the information below: 11 | 12 | 1. Problem Link: 13 | 2. Your concern, describe the issue: 14 | 3. Your code or submission link: 15 | 4. Test case content: 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # bugs-and-features 2 | This repository is only for tracking bugs and feature requests on LightOJ 3 | 4 | Please create an issue [here](https://github.com/lightoj-dev/bugs-and-features/issues) if you want to notify us about a bug 5 | or request a feature. 6 | 7 | You can even raise issue for problem descriptions fix, suggestions for categories. 8 | 9 | Please explain as much as possible on the issue description so that we can understand it better, provide some screenshots 10 | when you are notifying us about a bug. 11 | -------------------------------------------------------------------------------- /author-documentation.md: -------------------------------------------------------------------------------- 1 | # LightOJ - Adding Problem and Contests 2 | 3 | To arrange a contest on LightOJ the following steps would be required: 4 | 5 | 6 | 7 | 1. First login to the platform. Go to [https://www.lightoj.com](https://www.lightoj.com) and login. You can sign in using your gmail/github account and can skip registration completely. 8 | 9 | To arrange a contest, you need to have a few problems. Problems and contests are separate entities, first we need to add problems onto the platform. 10 | 11 | 12 | ## Special Notice 13 | 14 | Currently one can host contests for free on LightOJ which doesn’t include any live support or assurance that the LightOJ’s server will be available to serve. If you want to host a contest with more than 50 participants, or require special support from the LightOJ admin team, please reach us over [facebook messenger](https://m.me/lightoj) or create a ticket [here](https://github.com/lightoj-dev/bugs-and-features/issues). 15 | 16 | 17 | ## Terms and Conditions 18 | 19 | If you are using LightOJ’s problem creation and contest hosting tool, you are agreeing with LightOJ’s [terms of service](https://github.com/lightoj-dev/privacy-policy/blob/master/terms-of-service.md), and specially you should not try to exploit the system and use this tool to exploit the users of LightOJ. You can not create any content on LightOJ which can be used to insult or bully some person or a group. If you try to do so, we may ban you from the platform or even take legal action. If you are unsure about anything or need to learn more, please reach us over the [facebook messenger](https://m.me/lightoj) or create a ticket [here](https://github.com/lightoj-dev/bugs-and-features/issues). 20 | 21 | ## Privacy Notice for LightOJ 22 | 23 | This Privacy Notice outlines how we collect, use, disclose, and protect personal information on lightoj. We are committed to ensuring the privacy and security of your personal information. Please read this notice carefully to understand our practices regarding your data. 24 | 25 | **Collection of Personal Information:** 26 | 27 | When you register for the programming competition, we may collect personal information such as your name, email address, username, and country of residence. 28 | We may also collect additional information related to your participation in the competition, such as your submission history and competition results. 29 | We collect this information to administer the competition, communicate with participants, and ensure fair competition. 30 | Use of Personal Information: 31 | 32 | We use the personal information provided during registration to verify your eligibility, communicate important updates about the competition, and provide competition-related services. 33 | Your personal information may also be used to generate anonymous statistics and reports for internal analysis and improvement of our competition platform. 34 | 35 | **Disclosure of Personal Information:** 36 | 37 | We may share your personal information with trusted third-party service providers who assist us in operating the competition platform, such as hosting providers and email communication platforms. These third parties are obligated to maintain the confidentiality and security of your personal information. 38 | We may disclose your personal information if required by law or in response to a valid legal request. 39 | Data Security: 40 | 41 | We implement appropriate technical and organizational measures to protect your personal information against unauthorized access, alteration, disclosure, or destruction. 42 | We restrict access to personal information to authorized personnel who need to know the information for competition administration purposes. 43 | Data Retention: 44 | 45 | We retain your personal information for as long as necessary to fulfill the purposes outlined in this Privacy Notice, or as required by law. 46 | Your Rights: 47 | 48 | You have the right to access, correct, or delete your personal information held by us. Please contact us using the information provided below to exercise these rights. 49 | You have the right to withdraw your consent for the processing of your personal information. However, this may result in your disqualification from the competition. 50 | 51 | **Links to External Websites:** 52 | 53 | Our website may contain links to external websites. We are not responsible for the privacy practices or content of these websites. We encourage you to review the privacy policies of any external websites you visit. 54 | 55 | **Updates to Privacy Notice:** 56 | 57 | We may update this Privacy Notice from time to time to reflect changes in our privacy practices. The updated version will be posted on our website, and the date of the last revision will be indicated. 58 | Contact Us: 59 | 60 | If you have any questions, concerns, or requests regarding this Privacy Notice or the handling of your personal information, please contact us at admin@lightoj.com. 61 | 62 | By participating in the programming competition and using our website, you acknowledge that you have read and understood this Privacy Notice and consent to the collection, use, and disclosure of your personal information as described herein. 63 | 64 | ## Account Deletion 65 | Please send us an email at admin@lightoj.com if you want us to delete your information from the system. Please note that, this acion is not reversible, i.e once done all your personal information with submissions in the system will be deleted. 66 | 67 | # Adding Problems 68 | 69 | If you make any changes, make sure to hit the **Save** button. 70 | 71 | 1. Go to [https://lightoj.com/author](https://lightoj.com/author) and click **Problems** from the right nav. 72 | 2. On the top right, you can select **Create New Problem**. 73 | 3. Add problem title and handle (handle is unique across the system, letters numbers and dashes are allowed) 74 | 4. **Statements:** Add **Description** to state the problem, add **Input** and **Output** to describe the output format. If the problem statement has some theories, you might add notes (optional). 75 | 5. **General:** 76 | - **Problem title** and **Problem Handle** are there, you might be able to change it if needed. 77 | - **Problem Type** can be Algorithm or Database depending on if the problem is a traditional algorithmic problem, and it’s a sql problem. 78 | - **Problem Status** can be **in-progress**, once done can be changed to **done**. 79 | - **Is dataset open** should be set to **NO** (default). 80 | - **Short Description** can be left blank, or you can add one for future reference (optional). 81 | 6. **Dataset:** 82 | - Datasets are very important for a problem to verify correctness. Add sample.in and sample.out files. **sample.in** should contain a sample input for the problem which the contestants will see when they open the problem. Same goes for **sample.out** which contains the output for the sample.in. 83 | - You can add multiple samples, upload the dataset first, then click on edit dataset button, and check the _sample_ checkbox, then save the changes. 84 | - Add a few datasets, you can choose any name, but the only restriction is that the input and the output file name should be the same. If **a.in** is the input file name then the corresponding correct output should be in **a.out**. Other than samples, these files will be hidden to the contestants and lightoj will verify user solutions based on these files. Try not to add more than 20 files per problem (10 input and 10 output files.) 85 | - You need to set the “active” flag for all the datasets (even the sample datasets) you want to use during a contest. Upload the dataset first, then click on edit dataset button, and check the “active” checkbox, then save the changes. 86 | - For database problems, the input and output files need to be in a certain format. The editor should help you with that. Feel free to reach out if you need help. 87 | 7. **Limits:** 88 | - **Memory limit** defines how much memory the user solution is allowed to consume. Set 128 if unsure. 89 | - **Time limit** defines how much cpu the user solution is allowed to consume. Set 2 seconds if unsure. 90 | - **Accepted Programming Languages** can be left empty to allow all the available programming languages. If you want users to use only python, c++, then just select these two. 91 | 8. **Checker**: Use **default** for simplicity. If your output has floating point numbers, then use the **Float checker** type. Please contact us if you want to use a special judge. 92 | 9. **Permissions:** By default, only the author can view/edit the problem. If you want others to edit the problem, please add permission. 93 | 10. **Solutions**: You can add solutions for the problem, you should run the solution and see how much memory and time the judge solution is taking. Based on that, adjust the problem time and memory limit. Selecting time and memory can be tricky based on the solutions. Feel free to reach out if you need help. 94 | 11. **Submissions**: Will show you the judge solutions you have run, just for bookkeeping. 95 | 12. **Solution Templates**: Completely optional, this will be loaded when a contestant opens the problem as part of the solution. 96 | 13. **Input Generators**: For now, ignore this. 97 | 98 | 99 | # Adding Contests 100 | 101 | 1. Go to [https://lightoj.com/author](https://lightoj.com/author) and click **Contests** from the right nav. 102 | 2. Click **Create new contest** 103 | - **Contest Title** should be the name of the contest 104 | - **Contest handle** is unique across all contests, letters, numbers are dashes are allowed. 105 | - **Participation type** should be **individual**. 106 | - Set the contest start time and end time (This is based on your local time zone). 107 | 3. Click **Settings** from the right nav. 108 | - Add **contest description**, this will be visible to the contestants when they view the contest. 109 | - **Contest Announcement** will be notified to the contestants when the contest is running. If there is any error in the contest, or related to any problem statement, you can update in the announcement. 110 | - **Contest Type** should be icpc. 111 | - **Contest Participation** Type must be private. 112 | - For simplicity, keep the freeze time the same as end time. 113 | 4. Click **Problems** and Add Problems. Search for the problem you would like to add in this contest. You can add as many problems as you like (Maximum 26). For now keep the same score for all the problems. Problem search option will show both your created problems and the problems available on the volumes. 114 | 5. **Permissions**, if multiple people are arranging the contest, please add the authors. There are different roles, just use **judge** for now. 115 | 6. **Participants:** You have to add all the users (if invite only) here who will participate in the contest. Keep in mind that the contestants have to be registered on LightOJ. 116 | 7. **Submissions**: Will show all the submissions of the contestants. 117 | 8. **Clarifications:** Contestants can ask about clarifying questions, judges can see all the questions here and can answer as necessary. The reply page is self sufficient. 118 | 9. **Standings:** Shows the contestant rank list. 119 | -------------------------------------------------------------------------------- /contest-participation.md: -------------------------------------------------------------------------------- 1 | # LightOJ - Contest Participation 2 | 3 | To Participate in a LightOJ contest, you will need to do the following: 4 | 5 | 6 | 1. First login to the platform. Go to [https://www.lightoj.com](https://www.lightoj.com) and login. You can sign in using your gmail/github account and can skip registration completely. 7 | 8 | ## Terms and Conditions 9 | 10 | If you are using LightOJ’s problem creation and contest hosting tool, you are agreeing with LightOJ’s [terms of service](https://github.com/lightoj-dev/privacy-policy/blob/master/terms-of-service.md), and specially you should not try to exploit the system and use this tool to exploit the users of LightOJ. You can not create any content on LightOJ which can be used to insult or bully some person or a group. If you try to do so, we may ban you from the platform or even take legal action. If you are unsure about anything or need to learn more, please reach us over the [facebook messenger](https://m.me/lightoj) or create a ticket [here](https://github.com/lightoj-dev/bugs-and-features/issues). 11 | 12 | 13 | # Contest Registration 14 | 15 | 1. Go to [https://lightoj.com/contests](https://lightoj.com/contests) and find the contest you want to participate. 16 | 2. For **public** contests, you should be able to click the contest title and hit register on the new page. Once registered you should be able to enter the arena once the contest starts. For team contests, your team name will appear once you click the 'register' button. 17 | 3. For **private** contests, you don't have any option to register, the organizers should add you when setting up the contest. 18 | 19 | # Contest Participation 20 | 21 | 1. Once you are registered, you should be able to click "Go to contest arena". 22 | 2. Once inside the arena, you should be able to see the problems. Click any problem to view the problem. To solve it, you can use the editor or use any other tool, but submit your solution through the code editor. 23 | 3. You should be able to see your submissions in the submissions page. 24 | 4. Click ranklist to see the ranklist of the contest. 25 | 5. If you have questions about any problem, or about the contest in general, open the clarifications tab. 26 | 6. Hit the create button and write up your question. The contest authors should respond in LightOJ. 27 | 28 | # Team Contests 29 | 30 | 1. For team contests, once you are in the arena, you should be able to see the team you are participating as. 31 | 2. Your submission will be counted as your team's submission. 32 | 3. Multiple people from the same team can log in at the same time and can solve problems. 33 | --------------------------------------------------------------------------------