List of database tables that could be included in the design of an e-learning website:
1. Users:
user_id (Primary Key)
username
password
email
role (e.g., student, teacher, admin)
2. Courses:
course_id (Primary Key)
course_name
grade_level
teacher_id (Foreign Key referencing Users table)
textbook_id (Foreign Key referencing Textbooks table)
teacher_guide_id (Foreign Key referencing Teacher_Guides table)
lecture_notes_id (Foreign Key referencing Lecture_Notes table)
past_exam_id (Foreign Key referencing Past_Year_Exam table)
past_exam_solution_id (Foreign Key referencing Past_Year_Exam_Solution table)
3. Grade_9_Courses:
grade_9_course_id (Primary Key)
course_id (Foreign Key referencing Courses table)
4. Grade_10_Courses:
grade_10_course_id (Primary Key)
course_id (Foreign Key referencing Courses table)
5. Grade_11_Courses:
grade_11_course_id (Primary Key)
course_id (Foreign Key referencing Courses table)
6. Grade_12_Courses:
grade_12_course_id (Primary Key)
course_id (Foreign Key referencing Courses table)
7. Freshman_Courses:
freshman_course_id (Primary Key)
course_id (Foreign Key referencing Courses table)
8. Tech_Courses:
tech_course_id (Primary Key)
course_id (Foreign Key referencing Courses table)
9. Enrollments:
enrollment_id (Primary Key)
user_id (Foreign Key referencing Users table)
course_id (Foreign Key referencing Courses table)
date_enrolled
10. Textbooks:
textbook_id (Primary Key)
textbook_name
author
publication_date
11. Teacher_Guides:
teacher_guide_id (Primary Key)
guide_name
course_id (Foreign Key referencing Courses table)
12. Lecture_Notes:
lecture_notes_id (Primary Key)
notes_title
course_id (Foreign Key referencing Courses table)
13. Past_Year_Exam:
past_exam_id (Primary Key)
exam_title
course_id (Foreign Key referencing Courses table)
14. Past_Year_Exam_Solution:
past_exam_solution_id (Primary Key)
solution_title
course_id (Foreign Key referencing Courses table)
15. Messages:
message_id (Primary Key)
sender_id (Foreign Key referencing Users table)
receiver_id (Foreign Key referencing Users table)
message_content
date_sent
16. Certificates
certificate_id (Primary Key)
student_id (Foreign Key to Students table)
course_id (Foreign Key to Courses table)
issue_date
17. Feedback
feedback_id (Primary Key)
student_id (Foreign Key to Students table)
course_id (Foreign Key to Courses table)
feedback_content
feedback_date
18. Course_Ratings
rating_id (Primary Key)
student_id (Foreign Key to Students table)
course_id (Foreign Key to Courses table)
rating_value
rating_date
19. Payment_History
payment_id (Primary Key)
student_id (Foreign Key to Students table)
course_id (Foreign Key to Courses table)
payment_amount
payment_date
API END POINTS for above database schema
1. Users:
Create a new user: POST /users
Get user by ID: GET /users/{user_id}
Update user by ID: PUT /users/{user_id}
Delete user by ID: DELETE /users/{user_id}
2. Courses:
Create a new course: POST /courses
Get course by ID: GET /courses/{course_id}
Update course by ID: PUT /courses/{course_id}
Delete course by ID: DELETE /courses/{course_id}
3. Grade 9 Courses:
Create a new grade 9 course: POST /grade9courses
Get grade 9 course by ID: GET /grade9courses/{grade_9_course_id}
Update grade 9 course by ID: PUT /grade9courses/{grade_9_course_id}
Delete grade 9 course by ID: DELETE /grade9courses/{grade_9_course_id}
4. Grade 10 Courses:
Create a new grade 10 course: POST /grade10courses
Get grade 10 course by ID: GET /grade10courses/{grade_10_course_id}
Update grade 10 course by ID: PUT /grade10courses/{grade_10_course_id}
Delete grade 10 course by ID: DELETE /grade10courses/{grade_10_course_id}
5. Grade 11 Courses:
Create a new grade 11 course: POST /grade11courses
Get grade 11 course by ID: GET /grade11courses/{grade_11_course_id}
Update grade 11 course by ID: PUT /grade11courses/{grade_11_course_id}
Delete grade 11 course by ID: DELETE /grade11courses/{grade_11_course_id}
6. Grade 12 Courses:
Create a new grade 12 course: POST /grade12courses
Get grade 12 course by ID: GET /grade12courses/{grade_12_course_id}
Update grade 12 course by ID: PUT /grade12courses/{grade_12_course_id}
Delete grade 12 course by ID: DELETE /grade12courses/{grade_12_course_id}
7. Freshman Courses:
Create a new freshman course: POST /freshmancourses
Get freshman course by ID: GET /freshmancourses/{freshman_course_id}
Update freshman course by ID: PUT /freshmancourses/{freshman_course_id}
Delete freshman course by ID: DELETE /freshmancourses/{freshman_course_id}
8. Tech Courses:
Create a new tech course: POST /techcourses
Get tech course by ID: GET /techcourses/{tech_course_id}
Update tech course by ID: PUT /techcourses/{tech_course_id}
Delete tech course by ID: DELETE /techcourses/{tech_course_id}
9. Enrollments:
Create a new enrollment: POST /enrollments
Get enrollment by ID: GET /enrollments/{enrollment_id}
Update enrollment by ID: PUT /enrollments/{enrollment_id}
Delete enrollment by ID: DELETE /enrollments/{enrollment_id}
10. Textbooks:
Create a new textbook: POST /textbooks
Get textbook by ID: GET /textbooks/{textbook_id}
Update textbook by ID: PUT /textbooks/{textbook_id}
Delete textbook by ID: DELETE /textbooks/{textbook_id}
11. Teacher Guides:
Create a new teacher guide: POST /teacherguides
Get teacher guide by ID: GET /teacherguides/{teacher_guide_id}
Update teacher guide by ID: PUT /teacherguides/{teacher_guide_id}
Delete teacher guide by ID: DELETE /teacherguides/{teacher_guide_id}
12. Lecture Notes:
Create new lecture notes: POST /lecturenotes
Get lecture notes by ID: GET /lecturenotes/{lecture_notes_id}
Update lecture notes by ID: PUT /lecturenotes/{lecture_notes_id}
Delete lecture notes by ID: DELETE /lecturenotes/{lecture_notes_id}
13. Past Year Exam:
Create a new past year exam: POST /pastexams
Get past year exam by ID: GET /pastexams/{past_exam_id}
Update past year exam by ID: PUT /pastexams/{past_exam_id}
Delete past year exam by ID: DELETE /pastexams/{past_exam_id}
14. Past Year Exam Solution:
Create a new past year exam solution: POST /pastexamsolutions
Get past year exam solution by ID: GET /pastexamsolutions/{past_exam_solution_id}
Update past year exam solution by ID: PUT /pastexamsolutions/{past_exam_solution_id}
Delete past year exam solution by ID: DELETE /pastexamsolutions/{past_exam_solution_id}
15. Messages:
Create a new message: POST /messages
Get message by ID: GET /messages/{message_id}
Update message by ID: PUT /messages/{message_id}
Delete message by ID: DELETE /messages/{message_id}
16. Certificates:
Create a new certificate: POST /certificates
Get certificate by ID: GET /certificates/{certificate_id}
Update certificate by ID: PUT /certificates/{certificate_id}
Delete certificate by ID: DELETE /certificates/{certificate_id}
17. Feedback:
Create a new feedback: POST /feedback
Get feedback by ID: GET /feedback/{feedback_id}
Update feedback by ID: PUT /feedback/{feedback_id}
Delete feedback by ID: DELETE /feedback/{feedback_id}
18. Course Ratings:
Create a new course rating: POST /courseratings
Get course rating by ID: GET /courseratings/{rating_id}
Update course rating by ID: PUT /courseratings/{rating_id}
Delete course rating by ID: DELETE /courseratings/{rating_id}
19. Payment History:
Create a new payment entry: POST /paymenthistory
Get payment entry by ID: GET /paymenthistory/{payment_id}
Update payment entry by ID: PUT /paymenthistory/{payment_id}
Delete payment entry by ID: DELETE /paymenthistory/{payment_id}