TeamQuiz is a web application that facilitates job applications and quizzes for users. It includes features for both admins and users, with a backend system that processes quiz results and notifications.
The application uses AWS services to handle various aspects:
- AWS Lambda: Executes code in response to API requests and other triggers.
- API Gateway: Manages API endpoints and routes requests to Lambda functions.
- RDS Aurora Serverless: Stores quiz data and user information.
- Cognito: Manages user authentication and authorization, Users are stored in Cognito, and API access is authorized through Cognito.
- S3: Stores static assets.
- CloudFront: Delivers content through a CDN.
- SES: Sends email notifications.
- SNS: Sends notifications and updates.
- SQS: Handles message queues.
- Admins can create companies and job positions within those companies.
- Jobs are linked to specific profiles (e.g., front-end, back-end).
- Admins can create and manage questions, with each question associated with a specific profile.
- Admins generate quizzes that are related to a job and company.
- Each quiz consists of questions tied to particular profiles.
- Users can view job listings and apply for jobs.
- Application details and resumes are stored in a database and an S3 bucket, with resumes served via CloudFront.
- Users take quizzes generated by admins.
- Upon quiz submission, an SNS topic is triggered, and a message with the results is published.
- The message is sent to an SQS queue.
- A Lambda function polls the SQS queue, processes the results, and sends notifications via SES.
please refer to screenshots folder to view how the application works and see the results.
-
Deploy the SAM application:
sam build sam deploy --guided
Contributions are welcome! If you have ideas or improvements for the project.
I'm looking to add a new feature to integrate Google Calendar for scheduling interviews. This feature will allow admins to set up interviews with users who pass the quiz. If you are interested in working on this improvement:
- Develop the Feature: Implement the Google Calendar integration.
- Update Documentation: Ensure the documentation is updated to reflect the new functionality.
- Submit a Pull Request: Follow the standard process to contribute your changes.
Thank you for your contributions!
This project is licensed under the MIT License. See the LICENSE file for details.