|
1 |
| -This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). |
| 1 | +# :seedling: RE4.W: Recycling Heroes |
2 | 2 |
|
3 |
| -## Available Scripts |
| 3 | +[](https://app.netlify.com/sites/recycling-heroes/deploys) |
4 | 4 |
|
5 |
| -In the project directory, you can run: |
6 | 5 |
|
7 |
| -### `npm start` |
| 6 | +https://recycling-heroes.netlify.com/ |
8 | 7 |
|
9 |
| -Runs the app in the development mode.<br> |
10 |
| -Open [http://localhost:3000](http://localhost:3000) to view it in the browser. |
| 8 | + |
11 | 9 |
|
12 |
| -The page will reload if you make edits.<br> |
13 |
| -You will also see any lint errors in the console. |
| 10 | +## About |
14 | 11 |
|
15 |
| -### `npm test` |
| 12 | +**The Problem:** Lots of potential recyclables are thrown in the wrong bin - people just aren't educated enough about this. It would be good to educate children from a young age in what can and can't be recycled. |
16 | 13 |
|
17 |
| -Launches the test runner in the interactive watch mode.<br> |
18 |
| -See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. |
| 14 | +**The Solution:** Recycling Heroes is an interactive, educational game for primary school students and their teachers that will better student understanding of recycling and environmental concerns. |
19 | 15 |
|
20 |
| -### `npm run build` |
| 16 | + |
21 | 17 |
|
22 |
| -Builds the app for production to the `build` folder.<br> |
23 |
| -It correctly bundles React in production mode and optimizes the build for the best performance. |
24 | 18 |
|
25 |
| -The build is minified and the filenames include the hashes.<br> |
26 |
| -Your app is ready to be deployed! |
| 19 | +## Tech Stack |
27 | 20 |
|
28 |
| -See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. |
| 21 | +* Built with React & Styled Components |
| 22 | +* Deployed on Netlify using Netlify Functions for a serverless application |
| 23 | +* Tested with Jest, ESLint and Prettier |
| 24 | +* Our database is Airtable |
| 25 | +* We used ReactDnD for our game functionality |
29 | 26 |
|
30 |
| -### `npm run eject` |
| 27 | +## The App |
31 | 28 |
|
32 |
| -**Note: this is a one-way operation. Once you `eject`, you can’t go back!** |
| 29 | +Currently the app is a Minimum Viable Product (MVP) primarily focussing on the drag and drop game and educating kids with tips and facts of what they can and how they can recycle certain items. |
33 | 30 |
|
34 |
| -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. |
| 31 | +The app loads data from an external database to populate a game. The game requires the user to drag and drop rubbish items into the correct bin. At the end of the game, the user can see their score, and click on items to see facts about the rubbish they just sorted. |
35 | 32 |
|
36 |
| -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. |
37 | 33 |
|
38 |
| -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. |
| 34 | +## User Journeys |
39 | 35 |
|
40 |
| -## Learn More |
| 36 | +* As a student, I want to learn about the environment. |
| 37 | +* As a teacher, I want my students to be able to teach themselves about the environment. |
41 | 38 |
|
42 |
| -You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). |
| 39 | +## User Stories |
| 40 | +<details> |
| 41 | +<summary> Student </summary> |
43 | 42 |
|
44 |
| -To learn React, check out the [React documentation](https://reactjs.org/). |
| 43 | + - [ ] I want to be able to search for different products in order to understand if they are recyclable |
45 | 44 |
|
46 |
| -### Code Splitting |
| 45 | +- [x] I want to know if a product is recyclable through playing a game |
47 | 46 |
|
48 |
| -This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting |
| 47 | +- [x] I want to be able to find out additional information about the product through playing a game |
49 | 48 |
|
50 |
| -### Analyzing the Bundle Size |
| 49 | +- [x] I want to see a fact that I can understand & visualise |
51 | 50 |
|
52 |
| -This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size |
| 51 | +- [x] I would like to have visual aids to help me understand the information |
53 | 52 |
|
54 |
| -### Making a Progressive Web App |
| 53 | +- [x] I want to get scores for answering questions correctly |
55 | 54 |
|
56 |
| -This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app |
| 55 | +- [ ] I would like to be able to contribute my score to our overall class score |
57 | 56 |
|
58 |
| -### Advanced Configuration |
| 57 | +- [ ] I want to be able to have the same categories shown to me multiple times in order to help me remember them (frequency of 8) |
59 | 58 |
|
60 |
| -This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration |
| 59 | +- [ ] I would like to have an introduction to what recycling is, and what happens to waste when things are not recycled |
61 | 60 |
|
62 |
| -### Deployment |
| 61 | +#### Stretch Goals |
63 | 62 |
|
64 |
| -This section has moved here: https://facebook.github.io/create-react-app/docs/deployment |
| 63 | +- [ ] I would like learn about how much water goes into making different types of food |
65 | 64 |
|
66 |
| -### `npm run build` fails to minify |
| 65 | +- [ ] I would like to learn about wider environmental issues outside of recycling |
67 | 66 |
|
68 |
| -This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify |
| 67 | + |
| 68 | +</details> |
| 69 | + |
| 70 | +<details> |
| 71 | +<summary> Teacher </summary> |
| 72 | + |
| 73 | +- [x] I want my students to be able to play the game by themselves |
| 74 | + |
| 75 | +- [ ] I want my students to login to the app with their name / pin / password |
| 76 | + |
| 77 | +- [ ] I want to be able to register my class in order to keep track of our score |
| 78 | + |
| 79 | +- [ ] I want my students to be able to use the app at different times and results tracked |
| 80 | + |
| 81 | +- [x] I want the students to be able to easily follow the app / story line without supervision |
| 82 | + |
| 83 | +- [ ] I want to be able to have an overview of all the questions and answers |
| 84 | + |
| 85 | +#### Stretch Goals |
| 86 | + |
| 87 | +- [ ] I would like to be able to see the scores / time of use the students have on the app |
| 88 | + |
| 89 | + |
| 90 | +</details> |
| 91 | + |
| 92 | + |
| 93 | +## Prototyping |
| 94 | + |
| 95 | +Prototype built in [Figma](https://www.figma.com/file/IV6lJc5K9AlAhFYehxRk11c0/RE4.W?node-id=5%3A116) |
| 96 | + |
| 97 | +Showcases idea of the completed app, including stretch goals such as leaderboards, character creation, a comic-based story mode and a 'recycling cave' where you can look up what you can and can't recycle. |
| 98 | + |
| 99 | + |
| 100 | +### Leaderboards |
| 101 | + |
| 102 | + |
| 103 | +### Character Creation |
| 104 | + |
| 105 | + |
| 106 | +### Adventure Mode |
| 107 | + |
| 108 | + |
| 109 | +### Recycling Cave |
| 110 | + |
| 111 | + |
| 112 | +## How to install a local version of *Recycling Heroes*: |
| 113 | + |
| 114 | +<details> |
| 115 | +<summary> Instructions </summary> |
| 116 | +1. Clone this repo onto your local machine |
| 117 | + |
| 118 | +```git clone https://github.com/FAC-Sixteen/RE4.W.git``` |
| 119 | + |
| 120 | +2. Install dependencies |
| 121 | + |
| 122 | +```npm i``` |
| 123 | + |
| 124 | +3. Start local server |
| 125 | + |
| 126 | +``` netlify dev ``` |
| 127 | + |
| 128 | +4. Open your browser to: |
| 129 | + |
| 130 | +*https://localhost:8888* |
| 131 | + |
| 132 | +:heavy_plus_sign: See our test results |
| 133 | + |
| 134 | +``` npm devTest ``` |
| 135 | + |
| 136 | +The app does require environment variables to run using the Airtable API key. |
| 137 | + |
| 138 | +</details> |
| 139 | + |
| 140 | +## ToDo |
| 141 | + |
| 142 | +If we had more time, we would... |
| 143 | +* Add user authentication |
| 144 | +* Build a 'choose your avatar' feature |
| 145 | +* School leaderboards |
| 146 | +* Separate login for teachers with extra features |
| 147 | +* Add our beautiful storyboard! |
| 148 | +* Add a 'recycling cave' where users can search for items that can\can't be recycled |
0 commit comments