Back to the Future (of Collecting) is a React-based web application that serves as a platform for exploring the future of collecting practices. The app showcases an innovative approach to digital collecting, where users can discover and save unique items to their digital wallets as wallet passes. It fosters creativity and interaction by encouraging users to share their wallet passes and attempt to collect all available passes.
This project includes both hardware and software components to create a complete experience.
- Raspberry Pi (version 3 or later)
- Waveshare 7" Touch Display
- 4 Cherry MX Switches
- Arduino Pro Micro
- Wires
- Micro USB Cable
- HDMI Cable
- USB-C Cable
- M2.5 Screws and Standoffs
- Acrylic Plates (see files in the repository for dimensions and cutting guides)
- React - Frontend framework for building the user interface
- Node.js - JavaScript runtime for the backend and development environment
- Git - Version control system for collaborative development
- react: Core React library
- react-dom: DOM bindings for React
- react-router-dom: For routing within the app
- react-helmet: For injecting dynamic properties like the current item name and parent into the HTML header
- VS Code - Preferred code editor for writing and debugging
- npm - Package manager for installing dependencies
- Browser Developer Tools - For testing and debugging the web app
The project leverages the following technologies:
- React (with Hooks and Context API for state management)
- React Router for routing
- Node.js with simple static serving for deployment
- Install Node.js and npm on your local machine.
- Clone the repository from GitHub.
- Clone the Repository:
git clone https://github.com/your-username/back-to-the-future-collecting.git cd back-to-the-future-collecting
- Install Dependencies:
npm install
- Start the Development Server:
The app will run at
npm start
http://localhost:3000
by default.
- Build the production version of the app:
npm run build
- Deploy the contents of the
build
folder to your preferred hosting service.
- Install the
gh-pages
package as a development dependency:npm install gh-pages --save-dev
- Add the following scripts to your
package.json
file:"scripts": { "predeploy": "npm run build", "deploy": "gh-pages -d build" }
- Configure the
homepage
field in yourpackage.json
with your GitHub repository URL:"homepage": "https://your-username.github.io/your-repo-name"
- Deploy the app to GitHub Pages:
Your app will be live at
npm run deploy
https://your-username.github.io/your-repo-name
.
- Open the application in your browser at
http://localhost:3000
(or your deployed URL). - Refresh the page to discover a new unique item.
- Save the item to your digital wallet as a wallet pass.
- Share your wallet passes with others and try to collect all available passes.
- Feel free to fork the project and create your own future items or entirely different collections by leveraging the easy scaffolding in the
items.js
file.
Feel free to contribute by submitting issues, feature requests, or pull requests! Check out the repository's issues tab for ways to get involved.