project-web01

byTechnical Teach

I want to build a website in which there is a lucky spin which includes gemstones ( like Emerald, citrine, amethyst, rose quartz, smoky topaz, aquamarine, labradorite, rutile) when someone spin the roller the chances of getting emerald should be zero but don't show the chances to someone who spin and also the chances of getting aquamarine is 5%. And the one who comes on my website can spin only one time.

Landing
Landing

Comments (0)

No comments yet. Be the first!

System Requirements

System Requirement Document
Page 1 of 5

project-web01 System Requirements Document

Introduction

The project-web01 is designed to provide an engaging online experience through a unique feature called the "Lucky Spin." This feature incorporates a variety of gemstones, offering users a chance to win one with each spin. The system ensures specific probabilities for certain gemstones, enhancing the excitement and fairness of the game. Additionally, a coupon-based unlocking system will be implemented to control access to the spinner.

System Overview

The project-web01 website will feature a "Lucky Spin" game where users can spin a virtual wheel to win gemstones. The system will manage user interactions, enforce spin limitations, and control the probability of winning specific gemstones. The website will be accessible to users in India, with considerations for local preferences and timezone settings. Access to the spinner will be controlled via unique, one-time-use coupons distributed by the website owner.

Page 2 of 5

Functional Requirements as Story Points

  • As a User, I should be able to access the website and participate in the Lucky Spin game.
  • As a User, I should be able to spin the wheel once per visit to the website.
  • As a User, I should not see the probabilities of winning each gemstone.
  • As a User, I should have a 0% chance of winning an emerald.
  • As a User, I should have a 5% chance of winning an aquamarine.
  • As a User, I should be informed of the gemstone I win immediately after spinning.
  • As a User, I should be required to enter a unique coupon to unlock the Lucky Spin.
  • As an Admin, I should be able to generate and distribute unique, one-time-use coupons.
  • As a User, I should not be able to take screenshots or record the screen on the website.
  • As a User, I should be able to download a photo of the spinner result after winning.
  • As a User, I should see step-by-step instructions on the homepage explaining how to use the Lucky Spin.
  • As a User, I should be able to click a button to directly visit the Etsy website after the spin result.

User Personas

  • Visitor: A general user who visits the website to participate in the Lucky Spin. They are interested in gemstones and enjoy games of chance.
  • Admin: The website owner who manages the distribution of coupons and oversees the operation of the Lucky Spin game.

Core User Flows

  • Visitor accesses the website -> Reads step-by-step instructions -> Navigates to the Lucky Spin page -> Enters a unique coupon to unlock the spinner -> Spins the wheel -> Receives a gemstone result -> Downloads the result photo -> Clicks the Etsy link -> Exits or explores other parts of the website.
  • Admin generates unique coupons -> Distributes coupons to users -> Manages the Lucky Spin game operations.
Page 3 of 5

Visuals Colors and Theme

  • primary: #4A90E2 (a deep blue representing trust and reliability)
  • primary_light: #A6C8FF (a lighter blue for hover states and secondary UI elements)
  • secondary: #F5A623 (a vibrant orange for headlines and emphasis)
  • accent: #7ED321 (a bright green for CTAs and active states)
  • highlight: #F8E71C (a warm yellow for hover states and notifications)
  • bg: #FFFFFF (a clean white background for clarity)
  • surface: rgba(255, 255, 255, 0.8) (a translucent white for cards and panels)
  • text: #333333 (a dark grey for primary text and headings)
  • text_muted: #777777 (a softer grey for secondary text and labels)
  • border: rgba(0, 0, 0, 0.1) (a subtle grey for borders)

Signature Design Concept

The homepage of project-web01 will feature an interactive "Lucky Spin" wheel as its centerpiece. The wheel will be designed with vibrant gemstone colors, each segment representing a different gemstone. As users hover over the wheel, the segments will subtly glow, inviting interaction. Upon clicking to spin, the wheel will animate with a smooth, spinning motion, using motion/react for fluid transitions. The gemstones will appear to sparkle as the wheel slows down, culminating in a celebratory animation when a gemstone is won. This interactive experience will captivate users, encouraging them to explore further.

Page 4 of 5

Landing Hero Motion Brief

The landing hero will feature a dynamic illustration of the Lucky Spin wheel. The animation will begin with gemstones orbiting around the wheel, symbolizing the potential prizes. As the user initiates a spin, the wheel will rotate, and the gemstones will converge towards the center, highlighting the chosen prize. This 10-second loop will use motion/react to ensure smooth transitions and responsive behavior, with a reduced-motion state for accessibility. The animation will clearly depict the transformation from potential to prize, engaging users from the first interaction.

Interaction Model & Motion Direction

  • Intended Interaction Model: Animated
    • The landing page will feature moderate scroll-triggered reveals and hover transitions, enhancing the interactive experience without overwhelming the user.
    • Each section will have a distinctive mechanic, such as kinetic typography or morphing SVGs, to maintain user interest and engagement.

Non-Functional Requirements

  • The website must support high traffic volumes without performance degradation.
  • The system should ensure data privacy and secure user interactions.
  • The website should be responsive and accessible across various devices and screen sizes.
Page 5 of 5

Tech Stack

  • Frontend: React for Web
  • Backend: Python with FastAPI
  • Database: MySQL or MariaDB, using Alembic for migrations
  • Local Orchestration: Docker, docker-compose
  • Server-Side Orchestration: Kubernetes

Assumptions and Constraints

  • Users are assumed to have internet access and a modern web browser.
  • The system will not display the probabilities of winning specific gemstones to users.
  • Each user is limited to one spin per visit to ensure fairness and manage server load.
  • Coupons are unique and one-time-use, controlled by the Admin.

Glossary

  • Lucky Spin: A feature on the website where users can spin a virtual wheel to win gemstones.
  • Gemstones: Precious stones such as Emerald, Citrine, Amethyst, Rose Quartz, Smoky Topaz, Aquamarine, Labradorite, and Rutile, used as prizes in the Lucky Spin game.
  • Coupon: A unique code required to unlock the Lucky Spin, distributed by the Admin.
Landing design preview
Landing: View Info
Login: Sign In
AdminDashboard: View Overview
AdminDashboard: Generate Coupons
AdminDashboard: Distribute Coupons
AdminDashboard: Manage Spin Game
AdminDashboard: Monitor Usage
Landing design preview
Landing: View Info
Login: Sign In
AdminDashboard: View Overview
AdminDashboard: Generate Coupons
AdminDashboard: Distribute Coupons
AdminDashboard: Manage Spin Game
AdminDashboard: Monitor Usage