A simple SPA written in Typescript, made using ReactJS, which generates K-pop groups using Konva.js.
- React: Used for building the application.
- Typescript: Ensures type safety and minimizes the amount of errors during development and runtime.
- Prettier: Maintains a consistant coding style.
- Konva: Manipulates and exports the images on the canvas using HTML5 Canvas API
- React-Konva: Interacts with Konva api to manipulate the Layers & Shapes on the Canvas
- FontAwesome: Provides icons for the application
- Firebase: Backend service for storing user data and tracking the total number of app visits
- crypto.js: Hashs the user IP address for tracking unique users.
- Netlify: Hosts the application
- Cloudinary: Used for image hosting and CDN
- Tailwind CSS: Simplifies and ensures consistent styling of the app
- DaisyUI: Extending Tailwind CSS by incorporating pre-styled reusable components
- Headless UI: Implementing the toggle switch for name labels and dialog for saved user info
- Logged User Data consists of a Visit Counter and an Object with 3 properties:
userAddress
firstVisitedAt
lastVisitedAt
- Each time the page is rendered, the visit counter is incremented
- The App makes a GET request to jsonip to obtain the user's IP Address. This IP Address is then hashed to a SHA256 string to maintain anonymity but still generating the same hash from the same input string.
The app checks if the generated hash exists in the backend, if it does not, a new user document is created. If it does, only the
lastVisitedAt
key is updated.
The deployed app can be accessed here: https://queendom-puzzle.netlify.app
This project uses the default react-scripts
# To run the development server at localhost:3000
npm start
# To compile and minify the app for deployment
npm run build
# To run tests (although there are no tests)
npm run test
# To eject from the react configurations for webpack and stuff, so that you can configure it yourself
# PS: Once you run this, there's no going back
npm run eject
This app is inspired by Queendom Puzzle. It uses the name, style, and images of idols for entertainment purposes. Not affiliated with Queendom Puzzle or its owners. All copyrights belong to their respective owners.