Rockae Backend Database Schema
The backend database is a fully functionaly postgre sql
Column Name
Data Type
Constraints
id
Integer
Primary Key, Auto-increment
user_id
CharField
Unique, Format: ADM or USR
username
varchar(255)
Unique, NOT NULL
email
varchar
Unique, NOT NULL
password
varchar
NOT NULL
is_verified
boolean
default: false
is_active
boolean
default: true
date_joined
datetime
auto-generated
Column Name
Data Type
Constraints
id
Integer
PRIMARY KEY, AUTO_INCREMENT
user
ForeignKey
REFERENCES User (user_id), UNIQUE
firstname
varchar
lastname
varchar
phone_number
varchar
nullable
photo
file
nullable
Column Name
Data Type
Constraints
id
int
PRIMARY KEY
quiz_title
varchar
NOT NULL
description
text
nullable
user
int
FOREIGN KEY REFERENCES User (user_id)
create_date
datetime
auto-generated
number_of_questions
int
default: 10
difficulty_level
varchar
Choices: Easy, Medium, Hard
category
varchar
NOT NULL
is_public
boolean
default: false
is_timed
boolean
default: false
time_limit
float
nullable
auth_required
boolean
default: false
has_flash_card
boolean
default: false
Column Name
Data Type
Constraints
id
int
PRIMARY KEY
quiz_id
int
ForeignKey to Quiz
text
text
NOT NULL
Column Name
Data Type
Constraints
id
int
PRIMARY KEY
question_id
int
ForeignKey to Question
label
varchar(1)
NOT NULL (A, B, C, D, etc.)
text
text
NOT NULL
is_correct
boolean
NOT NULL
Column Name
Data Type
Constraints
id
int
PRIMARY KEY
title
varchar
NOT NULL
description
text
nullable
user_id
int
ForeignKey to User
quiz_id
int
One-to-one relationship with Quiz, nullable
Column Name
Data Type
Constraints
id
int
PRIMARY KEY
flashcard_id
int
ForeignKey to Flashcard
question
text
NOT NULL
answer
text
NOT NULL
Column Name
Data Type
Constraints
id
int
PRIMARY KEY
name
varchar
UNIQUE, NOT NULL
duration_days
int
NOT NULL
price
decimal
NOT NULL
is_active
boolean
default: true
Column Name
Data Type
Constraints
id
int
PRIMARY KEY
user_id
int
ForeignKey to User
plan_id
int
ForeignKey to SubscriptionPlan
start_date
datetime
auto-generated
end_date
datetime
calculated from SubscriptionPlan
(Endpoints listed as previously defined)
Django
Django REST Framework
JWT Authentication
Pandas (CSV/Excel processing)
DRF Spectacular (API documentation)
Generative AI (Gemini)
Decouple (Environment Variables Management)
Corsheaders (Cross-Origin Resource Sharing)
JWT Authentication
Custom Permission Classes
Data Validation & Sanitization
Error Handling & Standardized Responses
File Upload Security
FTP Secure Storage
Uses FTP storage for handling static and user-uploaded files
Environment configuration via python-decouple
Ready for deployment to platforms such as Railway, Heroku, or AWS
Comprehensive API documentation via DRF Spectacular (Swagger/OpenAPI)
Secure environment variables handling (SECRET_KEY
, DATABASE_URL
, SMTP settings, AI keys)
Database configured for optimized production performance (dj_database_url
)
JWT authentication token lifetime configurable
Real-time analytics
Enhanced admin interface
User activity logs
Expanded subscription and payment options