Back to .md Directory

EasyFlix Management System - Part 1 Research & Design

Documents the research, design, and database schema for a subscription-based media rental system with separate user and admin applications.

May 2, 2026
0 downloads
0 views
ai
View source

What this file does

Documents the research, design, and database schema for a subscription-based media rental system with separate user and admin applications.

When to use it

  • Designing a multi-tier subscription media platform
  • Planning a Python application with SQLite and admin/user separation
  • Creating a database schema for rental or purchase transactions
  • Documenting ethical and security requirements for a data-handling project

Assumes this stack

Python 3.xSQLite3SHA-256Textual GUI

EasyFlix Management System - Part 1 Research & Design


INVESTIGATE

Timeline and Schedule

PhaseTaskDurationCompletion %
Phase 1Research & Design3 days100%
Problem analysis1 day
Database design & ERD1 day
Interface mockups1 day
Phase 2Development5 days100%
Database implementation1 day
Core functions1 day
User interface1 day
Admin interface1 day
Extra buffer time for unexpected delays1 day
Phase 3Testing & Documentation2 days100%
System testing1 day
Final documentation1 day

Phase 1 - Research and design appropriate solution to the problem. Ensure proper planning and infrastructure to build on is created.

Phase 2 - Begin developement, noting down changes and relevant information during the process. Create programs and database.

Phase 3 - Test system and create final documentation on project and how well it solved the issue.

Problem Outline

EasyFlix is an online media service, they need a software solution for customers so they can create an account, purchase a subscription, rent shows, e.t.c. They also need a solution to track financial information and record sales. This should be done using a software solution that interacts with an SQL database, reading, storing and removing values.

Note: During developement some ideas and names have changed, such as rent --> buy

Problem Description

EasyFlix has many movies and tv shows available to watch. It offers two subscription levels, basic and premium. Basic users will have access to all movies that are in the basic access group. EasyFlix offers many shows in the basic subscription but some shows may be marked as premium. These premium shows can be rented for an additional cost. Users who purchase the premium subscription will gain access to all basic and premium shows without needing to rent.

The owners need a software solution that allows users to access the EasyFlix catalogue with a subscription and purchase shows. They need to be able to sign up and log in, and interact with the available shows and more.

They also need an admin software solution for managing the users, tracking sales, statistics, finances, adding/removing available shows and changing show access groups.

This all needs to be done with an SQL database to store the values, ensuring optimal and consistent security, integrity and availability of the data.

Planned Solutions:

EasyFlixUser is a python-based application designed for users, giving them the ability to do the following;

  • Login or Create an account
  • Choose or manage subscription level
  • Manage their account (Password changes, account termination)
  • Browse show catalogue
  • Add shows to account
  • Rent or return premium shows (if on basic plan)

EasyFlixAdmin is another Python-based application designed for an administrator of EasyFlix to access all aspects of it's media service including;

  • User account management (Account creation, password changes, account termination)
  • Subscription management (Price changes)
  • Media content managment (add movies/tv shows, modify show access group, modify rent price)
  • Access general statistics
  • Access financial data
  • See current rentals
  • See past rentals

Detailed Requirements

Programming Requirements:

  • Python 3.x application with SQLite3 database integration
  • Clean, professional UI (will use Textual GUI)
  • Modular code structure for better maintainability

Database Requirements:

  • Dual database architecture (Separated sensitive data from non-sensitive)
  • Complete data integrity, ensuring data is accurate, complete and consistent
  • Database backup ability, ensuring data safety
  • Easily available non-sensitive data, authentication required for sensitive data
  • Data security all passwords will be stored as a hash using SHA-256 with salt

Functional Requirements

  • Users able to manage accounts
    • Create account
    • Delete account
    • Change password
    • Change subscription
  • Users able to add, rent and return shows
  • Users able to access show catalogue
  • Admins able to manage catalogue
    • Change show access group
    • Change show rent cost
  • Admins able to see rentals, financial statistics, users, overall information
  • Data needs to be easily input-able one way or another (will be done automatically through GUI, hence user application)
  • Information readily available to authorised parties
  • Information readily editable to authorised parties

Ethical, Legal and Security Issues

Requirements and things to keep in mind regarding ethics, laws and security

Security Issues:

  • Password storage must use SHA-256 hashing with unique salts
    • Hashes must be used to protect the passwords in the database in the rare case of a data breach
    • This ensures passwords aren't just released to the internet in a worst case scenario
    • Salts are used to make the cracking process much harder
  • Input validation to prevent SQL injection attacks
    • Use proper sanitisation to prevent sql injection and data breaches
    • The API middleman also helps this and dramatically increases security by adding another step
  • Administrative access control and session management
    • Proper login details for admins, will also have a stored hash
  • All access to sensitive data requires admin authentication
  • Secure communication between programs and API
    • The programs may still be sending sensitive data on it's way to the database. Encrypting the communication between the programs and API will put a shield around that information and an especially strong encryption will be a very protective guard against malicious attacks

Legal Issues:

  • Compliance with data protection regulations for customer data & No storage of advertising data for opted out users
    • Any merketing data should only be collected with consent
    • If consent is withdrawn the information should be removed
  • Secure storage of personal information (names, emails)
    • Ties in with security, look after sensitive data properly
  • Administrative responsibility for user data management
    • Use of admin controls should be strictly professional and it would even be a good idea to implement guidelines

Ethical Issues:

  • Responsible handling of customer personal information
    • Ties in with above and security, proper storage and protection for sensitive data
  • Transparent subscription and rental cost management
    • All costs are easily readable and presented for easy understanding
  • Fair content access based on subscription levels
    • Reasonable show choices and 'moneys-worth' for subscription levels
  • Ethical data collection and usage practices
    • User is opted out by default, respect to the user
  • Opt in for data sharing
    • As above

Data Quality Factors

Data Accuracy:

  • Input validation to ensure data meets specific criteria
  • Format checking (e.g., email addresses, phone numbers)
  • Range validation for numerical data
  • Required field validation

Data Consistency:

  • Referential integrity between customers and rentals
  • Synchronized statistics and financial totals
  • Consistent naming conventions and data formats
  • Real-time updates across all related tables

Data Security:

  • Encrypted password storage for all users
  • Database file protection and access control
  • Administrative audit trails and logging
  • User authentication and authorization

Data Types and Constraints

  • Proper data type selection (INTEGER, VARCHAR, DATE, etc.)
  • Primary key constraints to ensure uniqueness
  • Foreign key constraints to maintain referential integrity
  • Check constraints to enforce business rules

Data Entry Controls

  • User interface design that prevents incorrect data entry
  • Drop-down menus and selection lists to limit input options
  • Data entry training for users

Database Design

  • Normalization to reduce data redundancy
  • Proper table relationships
  • Well-defined entity relationships
  • Appropriate indexing strategies

Backup and Recovery

  • Regular automated backups
    • Would be helpful to implement, will add to future features
  • Recovery procedures and testing
  • Transaction logs
  • Disaster recovery planning

Human Factors

  • User training and education
  • Clear data entry procedures
  • Error reporting mechanisms
  • Quality assurance processes

DESIGN

OLD DESIGN (THIS WAS REVAMPED IN DEVELOPEMENT)

Entity Relation Diagram

<img width="1143" height="1952" alt="image" src="https://github.com/user-attachments/assets/b4c1eeb5-f353-4c68-b9ce-578330a4f8c4" />

Relational Notation

CUSTOMERS(User_ID, Username, Email, Password_Hash, Salt, Subscription_Level, Shows, Rentals, Total_Spent, Opted_In, Favourite_Genre) Primary Key: User_ID

SHOWS(Show_ID, Name, Release_Date, Rating, Director, Length, Genre, Access_Group, Cost_To_Rent) Primary Key: Show_ID

RENTALS(Rental_ID, User_ID, Show_ID, Rental_Date, Return_Date, Expired, Cost) Primary Key: Rental_ID Foreign Keys: User_ID references CUSTOMERS(User_ID) Show_ID references SHOWS(Show_ID)

STATISTICS(Date, Total_Shows_Rented, Total_Subscriptions, Total_Users, Last_Updated) Primary Key: Date

FINANCIALS(Date, Total_Revenue_Rent, Total_Revenue_Subscriptions, Total_Combined_Revenue, Last_Updated) Primary Key: Date

Data Dictionary

CUSTOMERS

Stores user account information including authentication details, subscription level, and user preferences. This table contains sensitive customer data requiring secure access.

SHOWS

Contains the complete media catalog with show details, ratings, and access control information. This determines what content is available to different subscription tiers.

RENTALS

Records all rental transactions, tracking which users have rented which shows, rental periods, and associated costs. Links customers to shows through rental relationships.

STATISTICS

Maintains system-wide statistics for administrative reporting and business intelligence. Updated regularly to provide current system metrics.

FINANCIALS

Tracks revenue and financial data across all income streams. Critical for business reporting and financial analysis.

Detailed Field Descriptions

CUSTOMERS Table

Field NameData TypeLengthConstraintsDescription
User_IDINTEGER-PRIMARY KEY, NOT NULLUnique identifier for each customer
UsernameVARCHAR50UNIQUE, NOT NULLUser's chosen display name
EmailVARCHAR100UNIQUE, NOT NULLUser's email address for account
Password_HashVARCHAR64NOT NULLSHA-256 hashed password
SaltVARCHAR32NOT NULLUnique salt for password hashing
Subscription_LevelVARCHAR20NOT NULL, CHECK IN ('Basic', 'Premium')User's current subscription tier
ShowsTEXT--List of shows added to user's account
RentalsTEXT--History of user's rental activity
Total_SpentDECIMAL10,2DEFAULT 0.00Total amount spent by user
Opted_InBOOLEAN-DEFAULT FALSEIndicates whether user has opted in to share data for marketing
Favourite_GenreVARCHAR30-User's preferred content genre, NULL unless Opted_In is TRUE

SHOWS Table

Field NameData TypeLengthConstraintsDescription
Show_IDINTEGER-PRIMARY KEY, NOT NULLUnique identifier for each show
NameVARCHAR100NOT NULLTitle of the show or movie
Release_DateDATE-NOT NULLOriginal release date
RatingVARCHAR10NOT NULLContent rating (G, PG, M, MA15+, R18+)
DirectorVARCHAR100NOT NULLDirector's name
LengthINTEGER-NOT NULLDuration in minutes
GenreVARCHAR30NOT NULLPrimary genre classification
Access_GroupVARCHAR20NOT NULL, CHECK IN ('Basic', 'Premium')Subscription level required
Cost_To_RentDECIMAL5,2NOT NULLRental price for basic subscribers

RENTALS Table

Field NameData TypeLengthConstraintsDescription
Rental_IDINTEGER-PRIMARY KEY, NOT NULLUnique identifier for each rental
User_IDINTEGER-FOREIGN KEY, NOT NULLReferences CUSTOMERS(User_ID)
Show_IDINTEGER-FOREIGN KEY, NOT NULLReferences SHOWS(Show_ID)
Rental_DateDATE-NOT NULLDate rental was initiated
Return_DateDATE--Date rental was returned (NULL if active)
ExpiredBOOLEAN-DEFAULT FALSEWhether rental period has expired
CostDECIMAL5,2NOT NULLAmount charged for this rental

STATISTICS Table

Field NameData TypeLengthConstraintsDescription
DateDATE-PRIMARY KEY, NOT NULLDate for which statistics are recorded
Total_Shows_RentedINTEGER-DEFAULT 0Count of all rental transactions for this date
Total_SubscriptionsINTEGER-DEFAULT 0Count of active subscriptions on this date
Total_UsersINTEGER-DEFAULT 0Count of registered users on this date
Last_UpdatedDATETIME-NOT NULLTimestamp of last statistics update

FINANCIALS Table

Field NameData TypeLengthConstraintsDescription
DateDATE-PRIMARY KEY, NOT NULLDate for which financial data is recorded
Total_Revenue_RentDECIMAL10,2DEFAULT 0.00Total revenue from rentals for this date
Total_Revenue_SubscriptionsDECIMAL10,2DEFAULT 0.00Total revenue from subscriptions for this date
Total_Combined_RevenueDECIMAL10,2DEFAULT 0.00Sum of all revenue streams for this date
Last_UpdatedDATETIME-NOT NULLTimestamp of last financial update

Database Queries

User Management Queries

  1. Find all premium subscribers

    • Query the CUSTOMERS table to retrieve all users who have a subscription level of 'Premium'
    • This helps administrators understand their premium customer base
  2. Get customer spending summary

    • Query the CUSTOMERS table to find users who have spent more than a specified amount
    • Useful for identifying high-value customers and creating loyalty programs
  3. List customers by favorite genre

    • Query the CUSTOMERS table to group users by their favorite genre
    • Helps with content recommendation and targeted marketing
    • Applies only to customers who opted in to marketing, else those values will be NULL

Content Management Queries

  1. Find all shows available to basic subscribers

    • Query the SHOWS table to retrieve shows where the access group is 'Basic'
    • Used by the user application to display available content for basic users
  2. Get most expensive shows to rent

    • Query the SHOWS table to find shows with the highest rental costs
    • Helps administrators analyze pricing strategies
  3. List shows by genre and rating

    • Query the SHOWS table to filter content by both genre and content rating
    • Useful for content curation and parental controls

Rental Analysis Queries

  1. Find currently active rentals

    • Query the RENTALS table to find all rentals where the return date is NULL
    • Shows which rentals are currently active in the system
  2. Calculate total rental revenue for a specific period

    • Query the RENTALS table to sum up all rental costs within a date range
    • Essential for financial reporting and business analysis
  3. Find customers with overdue rentals

    • Query the RENTALS table to find rentals where the expired flag is TRUE and return date is NULL
    • Helps with rental management and customer follow-up

Complex Relationship Queries

  1. Get customer rental history with show details

    • Join CUSTOMERS, RENTALS, and SHOWS tables to show complete rental history
    • Provides comprehensive view of customer activity with show information
  2. Find most popular shows by rental count

    • Join RENTALS and SHOWS tables, group by show and count rentals
    • Identifies trending content and popular titles
  3. Calculate average spending per customer by subscription type

    • Join CUSTOMERS with RENTALS, group by subscription level and calculate averages
    • Analyzes spending patterns across different subscription tiers

Administrative Reporting Queries

  1. Generate monthly revenue report

    • Query FINANCIALS table to track revenue trends over time
    • Essential for business performance monitoring
  2. Get system usage statistics

    • Query STATISTICS table to retrieve current system metrics
    • Provides overview of platform growth and usage
  3. Find customers who haven't rented any shows

    • Use LEFT JOIN between CUSTOMERS and RENTALS to find users with no rental history
    • Identifies users who might need engagement strategies
    • Make sure to only check Basic users
  4. Find inactive accounts

    • Query the CUSTOMERS table to find users with no show history
    • Identifies users who are inactive

Security and Maintenance Queries

  1. Verify data integrity between tables
    • Check that all foreign key relationships are maintained properly
    • Ensures database consistency and prevents orphaned records

Time-Based Analysis Queries

  1. Get financial data for a specific date
  • Query the FINANCIALS table using the Date primary key to retrieve revenue information for a particular day
  • Essential for daily financial reporting and tracking
  1. Find statistics trends over a date range
  • Query the STATISTICS table to compare user growth and rental activity across multiple dates
  • Useful for identifying business trends and growth patterns
  1. Calculate monthly revenue totals
  • Query the FINANCIALS table to sum revenue across all days in a specific month
  • Provides monthly financial summaries for business reporting
  1. Track daily user growth
  • Query the STATISTICS table to show how Total_Users changes day by day
  • Monitors platform growth and user acquisition rates
  1. Find peak rental days
  • Query the STATISTICS table to identify dates with the highest Total_Shows_Rented
  • Helps identify popular viewing periods and plan capacity

NEW DESIGN

Entity Relation Diagram

<img width="1304" height="2457" alt="image" src="https://github.com/user-attachments/assets/efb0f986-ac64-4b12-af5b-3544686433b9" />

Relational Notation

ADMIN_CREDENTIALS(Admin_ID, Username, Password_Hash, Salt, Role, Created_Date)

  • Primary Key: Admin_ID

CUSTOMERS(User_ID, Username, Email, Password_Hash, Salt, Subscription_Level, Shows, Total_Spent, Favourite_Genre, Marketing_Opt_In)

  • Primary Key: User_ID

SHOWS(Show_ID, Name, Release_Date, Rating, Director, Length, Genre, Access_Group, Cost_To_Buy)

  • Primary Key: Show_ID

BUYS(Buy_ID, User_ID, Show_ID, Buy_Date, Cost)

  • Primary Key: Buy_ID
  • Foreign Keys: User_ID references CUSTOMERS(User_ID), Show_ID references SHOWS(Show_ID)

STATISTICS(Date, Total_Shows_Bought, Total_Subscriptions, Premium_Subscriptions, Basic_Subscriptions, Total_Users, Last_Updated)

  • Primary Key: Date

FINANCIALS(Date, Total_Revenue_Buys, Total_Revenue_Subscriptions, Premium_Subscription_Revenue, Basic_Subscription_Revenue, Total_Combined_Revenue, Last_Updated)

  • Primary Key: Date

Data Dictionary

ADMIN_CREDENTIALS

Stores administrator account information with secure authentication credentials for admin portal access.

CUSTOMERS

Contains user account information including authentication details, subscription level, and user preferences. The Shows field stores comma-separated show IDs representing the user's collection.

SHOWS

Complete media catalog with show details, ratings, and access control information. Access_Group determines subscription level required, Cost_To_Buy applies when basic users purchase premium content.

BUYS

Records purchase transactions when basic subscribers buy premium shows. Creates transactional history linking customers to purchased shows.

STATISTICS

Daily system statistics for administrative reporting and business intelligence. Automatically updated with current system metrics.

FINANCIALS

Daily financial data tracking revenue from subscriptions and purchases. Separates revenue streams for detailed business analysis.

Detailed Field Descriptions

ADMIN_CREDENTIALS Table

Field NameData TypeLengthConstraintsDescription
Admin_IDINTEGER-PRIMARY KEY, AUTOINCREMENTUnique administrator identifier
UsernameVARCHAR50UNIQUE, NOT NULLAdmin login username
Password_HashVARCHAR64NOT NULLSHA-256 hashed password
SaltVARCHAR32NOT NULLUnique salt for password hashing
RoleVARCHAR20DEFAULT 'admin'Administrator role designation
Created_DateDATETIME-DEFAULT CURRENT_TIMESTAMPAccount creation timestamp

CUSTOMERS Table

Field NameData TypeLengthConstraintsDescription
User_IDINTEGER-PRIMARY KEY, AUTOINCREMENTUnique customer identifier
UsernameVARCHAR50UNIQUE, NOT NULLUser's chosen username
EmailVARCHAR100UNIQUE, NOT NULLUser's email address
Password_HashVARCHAR64NOT NULLSHA-256 hashed password
SaltVARCHAR32NOT NULLUnique salt for password hashing
Subscription_LevelVARCHAR20NOT NULL, CHECK IN ('Basic', 'Premium')Current subscription tier
ShowsTEXT--Comma-separated list of show IDs in collection
Total_SpentDECIMAL10,2DEFAULT 0.00Total amount spent including subscriptions
Favourite_GenreVARCHAR30-Auto-calculated preferred genre from viewing history
Marketing_Opt_InBOOLEAN-DEFAULT 0Marketing communication preference

SHOWS Table

Field NameData TypeLengthConstraintsDescription
Show_IDINTEGER-PRIMARY KEY, AUTOINCREMENTUnique show identifier
NameVARCHAR100NOT NULLTitle of the show or movie
Release_DateDATE-NOT NULLOriginal release date
RatingVARCHAR10NOT NULLContent rating (G, PG, PG-13, R, TV-14, TV-MA, TV-PG)
DirectorVARCHAR100NOT NULLDirector's name
LengthINTEGER-NOT NULLDuration in minutes
GenreVARCHAR30NOT NULLPrimary genre classification
Access_GroupVARCHAR20NOT NULL, CHECK IN ('Basic', 'Premium')Required subscription level
Cost_To_BuyDECIMAL5,2NULLPurchase price for basic users (NULL for Basic tier shows)

BUYS Table

Field NameData TypeLengthConstraintsDescription
Buy_IDINTEGER-PRIMARY KEY, AUTOINCREMENTUnique purchase transaction identifier
User_IDINTEGER-FOREIGN KEY, NOT NULLReferences CUSTOMERS(User_ID)
Show_IDINTEGER-FOREIGN KEY, NOT NULLReferences SHOWS(Show_ID)
Buy_DateDATE-NOT NULLDate of purchase transaction
CostDECIMAL5,2NOT NULLAmount charged for this purchase

STATISTICS Table

Field NameData TypeLengthConstraintsDescription
DateDATE-PRIMARY KEY, NOT NULLDate for statistics record
Total_Shows_BoughtINTEGER-DEFAULT 0Count of all purchase transactions
Total_SubscriptionsINTEGER-DEFAULT 0Total active subscriptions
Premium_SubscriptionsINTEGER-DEFAULT 0Count of premium subscribers
Basic_SubscriptionsINTEGER-DEFAULT 0Count of basic subscribers
Total_UsersINTEGER-DEFAULT 0Total registered users
Last_UpdatedDATETIME-NOT NULLLast statistics update timestamp

FINANCIALS Table

Field NameData TypeLengthConstraintsDescription
DateDATE-PRIMARY KEY, NOT NULLDate for financial record
Total_Revenue_BuysDECIMAL10,2DEFAULT 0.00Revenue from show purchases
Total_Revenue_SubscriptionsDECIMAL10,2DEFAULT 0.00Revenue from all subscriptions
Premium_Subscription_RevenueDECIMAL10,2DEFAULT 0.00Revenue from premium subscriptions ($80 each)
Basic_Subscription_RevenueDECIMAL10,2DEFAULT 0.00Revenue from basic subscriptions ($30 each)
Total_Combined_RevenueDECIMAL10,2DEFAULT 0.00Sum of all revenue streams
Last_UpdatedDATETIME-NOT NULLLast financial update timestamp

Database Queries

User Management Queries

  1. Find all premium subscribers

    • Query the CUSTOMERS table to retrieve users with Premium subscription level
    • Returns user details for premium customer analysis
  2. Get high-value customers

    • Query CUSTOMERS table filtering by Total_Spent above threshold
    • Orders by spending amount for VIP customer identification
  3. List customers by favorite genre

    • Query CUSTOMERS table for users with Marketing_Opt_In enabled
    • Groups by Favourite_Genre for targeted marketing campaigns

Content Management Queries

  1. Get shows available to basic users

    • Query SHOWS table filtering by Access_Group equals 'Basic'
    • Returns content accessible without additional purchase
  2. Find premium shows with pricing

    • Query SHOWS table for Premium access group with Cost_To_Buy values
    • Lists purchasable content for basic subscribers
  3. Search shows by multiple criteria

    • Query SHOWS table with filters for genre, rating, release year, or name
    • Supports advanced content discovery and filtering

Purchase Analysis Queries

  1. Get user's purchased content

    • Join BUYS with SHOWS tables filtered by User_ID
    • Returns complete purchase history with show details
  2. Calculate daily purchase revenue

    • Sum Cost field from BUYS table for specific date
    • Provides daily purchase revenue totals
  3. Find most popular purchased shows

    • Join BUYS with SHOWS, group by Show_ID, count purchases
    • Identifies trending premium content

Complex Relationship Queries

  1. Get complete user profile with purchases

    • Join CUSTOMERS with BUYS and SHOWS tables
    • Returns comprehensive user activity and spending patterns
  2. Find users without purchases

    • Left join CUSTOMERS with BUYS to find users with no purchase history
    • Identifies potential customers for marketing campaigns
  3. Calculate subscription conversion rates

    • Compare basic vs premium subscription counts with purchase activity
    • Analyzes subscription tier effectiveness

Administrative Reporting Queries

  1. Generate current system statistics

    • Query latest STATISTICS record by Date
    • Provides real-time system metrics dashboard
  2. Create revenue trend analysis

    • Query FINANCIALS table over date range
    • Shows revenue growth and seasonal patterns
  3. Find inactive user accounts

    • Query CUSTOMERS for users with empty Shows field
    • Identifies dormant accounts needing engagement

Financial Analysis Queries

  1. Validate subscription revenue calculations

    • Cross-reference CUSTOMERS subscription counts with FINANCIALS revenue
    • Ensures financial data accuracy
  2. Track daily revenue breakdown

    • Query FINANCIALS for subscription vs purchase revenue comparison
    • Shows revenue stream distribution
  3. Calculate average customer value

    • Average Total_Spent from CUSTOMERS grouped by subscription level
    • Determines customer lifetime value by tier

Security and Data Integrity Queries

  1. Verify user show collections

    • Cross-reference CUSTOMERS Shows field with actual BUYS records
    • Ensures data consistency between purchase history and collections
  2. Audit admin access logs

    • Query ADMIN_CREDENTIALS for recent access patterns
    • Monitors administrative activity for security

What's inside

2 ERDs, 6 table definitions with field descriptions, 22 SQL query examples, and a 3-phase project timeline

Change this for your project

  • Replace EasyFlix with your own service name throughout
  • Replace ZProLegend007/Project-Data-Management-SQL with your repository URL
  • Replace the ERD image URLs with your own diagram links

Where it goes

Keep in docs/ or alongside the feature. Agents read it to implement against a defined contract.

Worth borrowing

  • Separating admin credentials from customer data in distinct tables
  • Using SHA-256 with unique salts for password storage
  • Tracking both statistics and financials per date for trend analysis

Related Documents