Welcome to Traces, an evidence management mobile web app developed for 'TRACES,' an immersive play by the artist and playwright Rachel Jendrzejewski, in collaboration with Wax Factory and The Walker Art Center. This app enriches the interactive play experience by seamlessly integrating user-generated content, such as video, audio, pictures, and notes, into the narrative, guided by a private investigator.
Ensure you have the latest versions of the following installed:
- Node.js
- PostgreSQL
- Nodemon (for development)
-
Users can upload video, audio, pictures, and notes to provide evidence relevant to the investigation.
-
Secure Storage: Uploaded evidence is securely stored using Amazon S3, ensuring the confidentiality and integrity of user data.
-
Traces includes user authentication functionality to ensure that only authorized individuals can access and participate in the interactive play experience.
-
Ability to review and curate submissions, ensuring that only relevant and appropriate evidence is included in the public gallery.
-
Administrators can edit or delete evidence as needed to maintain the integrity and quality of the content.
-
Choose to release all submitted evidence to the public, enriching the storytelling experience for all participants.
- React
- Material-UI
- Emotion
- Axios
- React Router DOM
- Redux
- Redux Saga
- Styled Components
- SweetAlert2
- Node.js
- Express.js
- AWS SDK for S3
- Multer
- Passport.js (for authentication)
- PostgreSQL (pg)
- Cookie-session
- bcryptjs
- dotenv
Development Tools: The project uses Vite for the frontend build process, Nodemon for live reloading, Vitest for testing, and is deployed on Heroku.
Try out the Traces app live: https://traces-project-b89e883c2e31.herokuapp.com/#/home
- Clone the repository:
git clone https://github.com/yourusername/traces.git - Navigate to the project directory:
cd traces - Install dependencies:
npm install - Ensure PostgreSQL is running. Use the provided
database.sqlto set up the database. - Create a
.envfile as described below and fill in your details. - Start the server:
npm run server - Start the client:
npm run client - Access the app at
http://localhost:3000.
Include the following in your .env file, replacing placeholder text with your actual configuration:
BUCKET_NAME='your_bucket_name'
BUCKET_REGION='your_region'
ACCESS_KEY='your_access_key'
SECRET_ACCESS_KEY='your_secret_access_key'
SERVER_SESSION_SECRET='a_strong_random_string'
Generate a strong SERVER_SESSION_SECRET with Password Generator Plus.
Database Setup Ensure PostgreSQL is running. Create a traces database and use the provided database.sql script to set up the necessary tables.
For any questions, comments, or inquiries regarding this project, please email me at JakeTBuroker@gmail.com, or connect with our team on LinkedIn!