This capstone project is designed to present the concept of StackOverflow and other such code help sites and present it in a highly gamified form. The format will be similar to an RPG quest board, where users will be able to post code help requests in the form of "quests". Users can post details related to their quest, such as their preferred coding language, project objectives/details, and any additional goals they may have. Users who post quests can also post a "bounty", which will be a reward of virtual currency that will be given to the first person who successfully completes the code request.
Users will earn this currency by (obviously) completing quests, but will also have methods to earn currency passively so that no one will ever be left without the ability to post or complete requests. Daily activities such as quizzes, user participation events, and other interactions will allow them to earn and save nominal amounts of currency so that the community will remain accessible to anyone, regardless of their skill level. Beyond that, currency use can be extrapolated to any number of stretch features, such as promoting your own quest or adding onto the bounty of a quest you would like to know the answer to, as well. Eventually, corporate sponsors may even be able to introduce "Legendary Quests" similar to bug bounties that require community participation to complete.
This project was bootstrapped with Create React App.
Behavior | Input | Output | Completed(Y/N?) |
---|---|---|---|
Create a quest object | Click Add Quest button | A new quest object is created | N |
Add the new quest object to a master list | N/A | Quest is added to the master list of quests and displayed on the page | N |
Click a quest to see its details | Click a quest div on the master quest list | Load quest details component | N |
Claim a quest to work on | Click the Claim Quest button on a quest details page | Quest is added to a list of your active quests | N |
Solve a quest | Enter a solution in a text/code editor block and click the Submit button on an active quest | Your solution is posted to the quest details page | N |
Complete a quest | Click the Accept Solution button on the quest details page of a quest you own | Quest is marked as Complete | N |
Requirements:
To use this program:
- Open your preferred browser.
- Navigate to https://github.com/jkbutserious/code-quest.git.
- Click the Code button and click Download ZIP to clone the repository to your computer.
- Open the Windows PowerShell console, VS Code Bash terminal, or the MacOS Terminal and use the
cd [YOUR DOWNLOAD FILEPATH]/code-quest
command to navigate to the Factory subdirectory. - Use the
npm run start
command to run the program. - Use the web interface to add kegs to the list and keep track of the pints left.
- If you have any issues running this program, please reach out to the developer or troubleshoot at your own risk.
To contribute to this project:
- Open your preferred browser.
- Navigate to https://github.com/jkbutserious/code-quest.
- Log into or sign up for your GitHub account.
- Click the Fork button to copy the repository and all source code.
- From your forked repository, you can download or clone the repository, by clicking the Code button.
-
To clone the repository in Visual Studio Code's terminal, use the command
git clone https://github.com/[YOUR-USER-NAME-HERE]/code-quest
-
To clone the repository in GitHub Desktop, click the Open in Desktop option
-
To download the repository, click the Download ZIP option, save the archive to your computer, and extract it to the folder of your choice
- Use your preferred code editor to edit the appropriate script files.
- Save any changes you make in your code editor and use your preferred git solution to commit your changes.
- Push your changes to your forked repository.
In the project directory, you can run:
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
The page will reload if you make edits.
You will also see any lint errors in the console.
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
Builds the app for production to the build
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
See the section about deployment for more information.
Note: this is a one-way operation. Once you eject
, you can’t go back!
If you aren’t satisfied with the build tool and configuration choices, you can eject
at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject
will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
You don’t have to ever use eject
. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
You can learn more in the Create React App documentation.
To learn React, check out the React documentation.
This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
- No additional code or installations are necessary to view this project.
No known issues. Please contact me if you have any problems.
To report any issues with this page or to contribute to this project, contact Jeff Kim at [email protected].
- JavaScript
- React
- Redux
- Node JS
- Visual Studio Code
- Git and Git BASH
Copyright © 2020 Jeffrey Kim
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.