UserFeedbackApp is a small frontend application created using "Create React App". The main purpose of this app is to collect anonymous user feedback for functionality or features of third-party apps. It provides an easy-to-use interface for users to rate various aspects of the apps they interact with.
The app is designed to be scalable, allowing it to handle a growing number of users and feedback efficiently. It also leverages Storybook for frontend reviews, making it easy for developers to review and test UI components in isolation.
It utilizes a Spring Boot API to handle the impressions & ratings. It's made available through a JavaScript drop-in library, please review the repository for more detailed documentation of how to utilize it.
- Allow users to rate functionality or features of third-party apps.
- Display an average rating for each aspect based on user inputs.
- Show visual representations of ratings (e.g., stars, emojis).
- Interactive and user-friendly interface.
- Scalable architecture to handle increasing user traffic and data.
To run this project locally on your machine, follow these steps:
- Ensure you have Node.js 18 or above installed on your system.
- Clone this repository to your local machine using:
git clone https://github.com/diggsweden/UserFeedbackApp.git
- Navigate to the project directory:
cd UserFeedbackApp
- Install the required dependencies:
npm install
To start the development server and run the app locally, use the following command:
npm start
This will start the app on your local server, and you can access it in your web browser at http://localhost:3000
.
Storybook is integrated into this project to help you review and test UI components in isolation. To launch Storybook, use the following command:
npm run storybook
This will start the Storybook server, and you can access it in your web browser at http://localhost:6006
. You can view different UI components and interact with them in Storybook's intuitive interface.
This repository has been prepared for a CI/CD flow for AWS using Terraform (IoC). terraform guidelines. To deploy the app in a scalable manner, follow these steps:
Non-AWS:
- Configure the necessary deployment settings based on your hosting provider.
- Build the production-ready version of the app using:
npm run build
- Deploy the generated build files to your hosting platform.
Github CI/CD flow for AWS using terraform & github actions:
- Make sure you have Terraform installed locally. Installation guide
- Adjust the
terraform/variables.tf
file according to your environment. - Make sure you have a user named
github_user
with a set of 3rd-party keys. - Run
terraform plan
to review the changes being made - Run
terraform apply
to apply the resources - Add the secrets AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY & CLOUDFRONT_DISTRIBUTION_ID for your repository in github
- Uncomment the "deploy" job in
.github/workflows/actions.yml
Note: Run terraform destroy
to remove the resources
Contributions to the UserFeedbackApp are welcome and encouraged! To contribute, follow these steps:
- Fork the repository to your GitHub account.
- Create a new branch based on the
main
branch for your changes:git checkout -b feature/your-feature-name
- Make your desired changes and commit them with descriptive commit messages.
- Push the changes to your forked repository.
- Submit a pull request from your branch to the
main
branch of this repository. - Your pull request will be reviewed, and once approved, it will be merged.
Please ensure to follow the Code of Conduct when contributing.
This project is licensed under the MIT License. Feel free to use, modify, and distribute the code for personal or commercial projects.