You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+57-17
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,8 @@ QuizMate is deployed on AWS EC2 using Docker containers, leveraging the scalabil
25
25
26
26
QuizApp is designed to provide the following key features:
27
27
28
-
-**Question Management:**
28
+
-**Question Management & Quiz Crea
29
+
- tion**
29
30
- View a list of questions.
30
31
- Create new questions.
31
32
- Update existing questions.
@@ -54,10 +55,10 @@ QuizApp is designed to provide the following key features:
54
55
QuizMate offers a wide range of features to meet your quiz and question management needs:
55
56
56
57
### Question Management:
57
-
-**View Questions:** Users can view a list of questions stored in the system, including the question text, options, marks, and difficulty level. They can also perform CRUD operations on questions, such as adding, updating, and deleting them.
58
-
-**Approval Workflow:**Any changes made to questions, including additions, updates, or deletions, are reflected in the system once they are approved by an admin. This ensures that only verified and accurate questions are available for use.
59
-
-**Question Paper Generation:** Users can generate question papers with a combination of easy, medium, and hard questions from various topics. This feature allows for the creation of balanced and comprehensive question papers for exams or quizzes.
60
-
-**Custom Quiz Creation:**Users can create custom quizzes by selecting questions based on their difficulty level and topic. This feature enables users to tailor quizzes to their specific needs and preferences, enhancing the quiz-taking experience.
58
+
-**View Questions:** Users can view a list of questions stored in the system, including the question text, options, and correct answer.
59
+
-**Create Questions:**Authenticated users can create new questions, specifying the question text, options, correct answer, and optional details like difficulty level and topic.
60
+
-**Update Questions:** Users with the necessary permissions can edit existing questions to modify any details or correct errors.
61
+
-**Delete Questions:**Authorized users can delete questions that are no longer needed.
61
62
62
63
### Topic Filtering:
63
64
-**Filter by Topics:** Questions can be filtered based on predefined topics, allowing users to focus on specific areas of interest.
@@ -75,6 +76,14 @@ QuizMate offers a wide range of features to meet your quiz and question manageme
75
76
-**Unique SessionUserID:** Each user participating in the session is personally identified with a unique sessionUserID, ensuring accurate tracking and identification.
76
77
-**Session Reports:** A session report is generated and saved for the user who created the session, providing detailed insights into the session's performance and outcomes.
77
78
79
+
### Blog Features:
80
+
-**Post Creation:** Users can create new posts to share their thoughts, ideas, and questions with the community. Posts can include text, images, and links, allowing for rich and engaging content.
81
+
-**Like and Unlike:** Users can like posts to show their appreciation or agreement. They can also unlike posts if they change their mind or no longer wish to support a particular post.
82
+
-**Commenting:** Users can comment on posts to share their thoughts, ask questions, or provide feedback. Comments can spark conversations and create a dialogue between users.
83
+
84
+
These features enrich the user experience on QuizMate, providing a platform for meaningful interactions and discussions within the community.
85
+
86
+
78
87
### Google Vertex AI Integration:
79
88
-**Hint Generation:** Google Vertex AI, specifically the Gemini Pro model, is used to generate hints for the questions. These hints can provide additional context or clues to help users answer questions correctly, enhancing the quiz experience.
80
89
@@ -92,10 +101,10 @@ QuizMate offers a wide range of features to meet your quiz and question manageme
92
101
- Spring Security
93
102
- JWT authentication
94
103
- MySQL Database
95
-
- Cloudinary (For user profile image management)
96
-
- AWS for Deployment
97
-
- Github Actions for CI/CD pipeline
98
-
- Docker for containerisation
104
+
- Cloudinary
105
+
- AWS for Deloyment
106
+
- Github Actions
107
+
- Docker
99
108
100
109
Add any other technologies or libraries you've used in your project.
101
110
@@ -114,7 +123,6 @@ Before you begin, make sure you have the following installed:
114
123
115
124
116
125
117
-
118
126
### Installation
119
127
120
128
1. Clone the repository:
@@ -123,8 +131,8 @@ Before you begin, make sure you have the following installed:
Configure application, including setting up the database and Cloudinary credentials & vertex Ai using Google Cloud SDK shell.
164
+
155
165
## Frontend
156
166
The frontend for QuizMate is currently under development and is being contributed by the following developers:
157
167
@@ -165,8 +175,36 @@ The frontend for QuizMate is currently under development and is being contribute
165
175
Please note that the frontend is still in progress, and more details will be added once it is ready for deployment.
166
176
167
177
168
-
### Configuration
169
-
Configure application, including setting up the database and Cloudinary credentials & vertex Ai using Google Cloud SDK shell.
178
+
## Deployment:
179
+
- **AWS EC2 (Ubuntu OS):** QuizMate is deployed on AWS EC2 instances running Ubuntu OS. EC2 instances provide scalable compute capacity in the cloud, allowing QuizMate to handle varying loads efficiently.
180
+
181
+
- **AWS RDS (MySQL Database):** MySQL database hosted on AWS RDS is used for managing user profiles, quiz data, question data, and other application data. RDS provides a scalable and managed database solution, ensuring data reliability and performance.
182
+
183
+
- **Cloudinary:** QuizMate uses Cloudinary for storing media files, such as user profile images. Cloudinary provides a cloud-based media management platform, enabling efficient storage and delivery of media files.
184
+
185
+
- **Docker:** QuizMate is containerized using Docker, allowing for easy deployment and scalability. Docker containers encapsulate the application and its dependencies, ensuring consistent and reliable deployment across different environments.
186
+
187
+
- **GitHub Actions:** QuizMate uses GitHub Actions for creating a CI/CD pipeline. GitHub Actions automate the build, test, and deployment processes, ensuring rapid and reliable delivery of updates to the application.
188
+
189
+
## Key Points:
190
+
1. **Custom Gateway Filter:** QuizMate uses a custom filter before the Spring Security filter to handle specific requirements or preprocessing of requests.
191
+
192
+
2. **Global CORS Configuration:** CORS (Cross-Origin Resource Sharing) is configured globally to allow requests from any origin. Preflight requests and AJAX calls are also properly configured with Spring Security.
193
+
194
+
3. **Mapping Types:** Various types of mappings are used throughout the project, including one-to-one, one-to-many, and many-to-many mappings, to establish relationships between entities.
195
+
196
+
4. **Global Exception Handling:** QuizMate implements a global exception handler along with a `@RestControllerAdvice` to effectively handle exceptions and provide proper information about errors to clients.
197
+
198
+
5. **Cloudinary SDK:** The Cloudinary SDK is used to handle media content, such as user profile images, ensuring efficient storage and delivery of media files.
199
+
200
+
6. **Mail Sender:** QuizMate uses a mail sender to send emails for verification and session details, enhancing the user experience and providing necessary information to users.
201
+
202
+
### Postman Collection (Work in Progress):
203
+
A Postman collection is being developed to document and test the APIs of QuizMate. It will include endpoints for various functionalities such as user authentication, question management, quiz creation, and blog post interactions.
204
+
205
+
Please check back soon for the completed Postman collection, which will provide a comprehensive overview of QuizMate's API capabilities and allow for easy testing and integration with the application.
206
+
207
+
170
208
171
209
### Swagger API Documentation
172
210
QuizApp provides Swagger for easy API documentation and testing. You can access the Swagger UI to interact with the APIs as follows:
0 commit comments