Browse Source

Let's Travel Project docs. (#2434)

* docs: adding subject and audit  files

* docs: fix bonus audit question and make comprehension question refer to the students.

* docs: fix the audit structure and bonus question format.

* docs: adding more details in the audit and the subject

* docs: adding more details in the audit, subject and fix typos

* docs: formating the subject

* docs: fix typo and update question to make it more precise

* docs: fix typos

* docs: rephrase the audit question.
pull/2516/head
zanninso 1 month ago committed by GitHub
parent
commit
3bbb4e3eb5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 60
      subjects/java/projects/lets-travel/README.md
  2. 161
      subjects/java/projects/lets-travel/audit/README.md

60
subjects/java/projects/lets-travel/README.md

@ -0,0 +1,60 @@
## Let's Travel
### Objectives
This phase aims to enhance the Travel Management System by integrating key features that focus on engaging travelers, offering personalized travel recommendations, and ensuring secure transactions. It highlights specific functionalities for Admins, Travel Managers, and Travelers, providing a tailored experience for each role.
### Instructions
Expand the Travel Management System by incorporating essential features and defining clear roles and responsibilities. Ensure each role is granted access to functionalities relevant to their needs, with Admins and Travel Managers having additional privileges for comprehensive system management.
#### 1. Feature Development and Integration by Roles
##### Admin:
- View top-ranking managers and travels, including reports on income for the last months and the number of organized travels.
- Access a detailed travel history list and feedbacks to assess user satisfaction.
- See a list of managers ordered based on their performance score, taking into account travel feedbacks, income, and other relevant metrics.
- Include a section for admins to review reports filed by travelers against travels or managers.
- Have the ability to perform all actions available to Travel Managers and Travelers, ensuring full oversight of the system.
##### Travel Manager:
- Create and manage personal travel offerings, with the capability to view feedback specific to their organized travels.
- Access a dashboard that displays key statistics linked to their travels, such as income, number of trips, and number of travelers.
- Manage subscriber lists for each travel, with options to view profiles or unsubscribe travelers from the travel.
- Have access to all functionalities available to a Traveler, enhancing their understanding of the user experience.
- Utilize detailed analytics and feedback to inform future travel planning and management strategies.
##### Traveler:
- Integrate an Elasticsearch-based travel search with autocomplete for smooth, dynamic querying across all travel details, ensuring swift and accurate results.
- Browse available travels and receive personalized suggestions based on previous feedback and participation (use at least 3 fields of the travel), utilizing Neo4j for customization.
- Subscribe and unsubscribe from travels with a cutoff period of 3 days before the travel start date for flexibility.
- Execute payments for subscriptions using various methods, catering to user convenience and security.
- Provide feedback on participated travels, contributing to the community's overall quality and trustworthiness.
- Access a Travel Manager page to view statistics, past travel ratings, and the number of reports, fostering transparency and accountability.
- Report Travel Managers or other travelers, ensuring a safe and respectful community environment.
- View personal statistics, including past travel participation, report counts, subscription cancellations, and preferred payment methods, for a personalized experience.
#### 2. Responsive and Intuitive UI
Design a user interface that is responsive, intuitive, and accessible across various devices and browsers.
Ensure seamless user experience from search to booking, with efficient navigation and relevant information presentation.
#### 3. Testing and Quality Assurance
- Develop comprehensive unit, integration, and end-to-end tests for all new features.
- Employ continuous integration practices to automate testing and ensure code quality throughout the development process.
#### 4. Security and Compliance
- Implement robust security measures to protect traveler data and transaction details, with a focus on authentication, payment processing, and privacy.
- Adhere to legal standards and industry best practices for data protection and online transactions, ensuring compliance and user trust.
- Ensure secure data transmission with SSL/TLS protocols.
### Bonus Features
- Explore Progressive Web App (PWA) technologies for an improved mobile user experience.
- Introduce multilingual support to accommodate a global user base.
- Develop any innovative feature that significantly boosts user engagement, platform functionality, or overall value.

161
subjects/java/projects/lets-travel/audit/README.md

@ -0,0 +1,161 @@
#### Comprehension
##### Ask the students to elaborate on how Elasticsearch contributes to the system's search and autocomplete features.
###### Are the students able to explain how Elasticsearch contributes to the system's search and autocomplete features?
##### Inquire about the students' understanding of Neo4j's role in delivering personalized travel suggestions.
###### Can the students detail Neo4j's role in personalizing travel suggestions?
##### Question the students on their knowledge of the scalability and operational independence of each service (Elasticsearch, Neo4j).
###### Do the students comprehend how each service is scaled and operates independently within the system?
##### Ask the students about the methods used to ensure data consistency between PostgreSQL, Neo4j, and Elasticsearch.
###### Are students aware of the techniques employed to maintain data consistency across databases?
##### Ask the students to describe the specific functionalities and permissions assigned to Admins, Travel Managers, and Travelers.
###### Do the students understand the distinct functionalities and permissions for each user role?
#### Functional
##### Verify if the Elasticsearch search functionality accurately returns results based on user queries.
###### Does the Elasticsearch functionality effectively and accurately return search results?
##### Check the relevance and speed of autocomplete suggestions provided to the user.
###### Are autocomplete suggestions both relevant and promptly provided?
##### Sign in with a user account. Verify the precision of travel recommendations from the Neo4j database by evaluating user feedback and past participation. Afterward, switch to a different account with varying feedback and participation levels to conduct another evaluation.
###### Does Neo4j deliver precise travel suggestions tailored to user preferences?
##### Confirm the presence of a comprehensive overview on the Admin dashboard.
###### Is the dashboard complete and showing all the information as defined in the subject [Admin section](../README.md#admin) ?
##### Assess the details of the travel management statistics available on the Travel Manager dashboard.
###### Are travel management statistics detailed and helpful for Travel Managers?
##### Ensure that personalized recommendations and travel history are easily accessible on the Traveler dashboard.
###### Can Travelers easily access personalized recommendations and their travel history?
##### Test the ease of navigation and subscription to available travels for Travelers.
###### Can Travelers easily subscribe to and navigate available travel options?
##### Check how subscription cancellations are handled, especially regarding the 3-day cutoff period.
###### Are subscription cancellations processed correctly, adhering to the specified cutoff period?
##### Evaluate the security and user-friendliness of the payment process.
###### Is the payment process secure and accommodating of various payment methods?
##### Test if Travelers can submit feedback on their travel experiences without issues.
###### Can Travelers submit feedback easily?
##### Verify if the feedback is visible to relevant parties such as Travel Managers and Admins for quality assurance.
###### Is the feedback accessible for quality control by Travel Managers and Admins?
##### Assess the ability of Travel Managers to create and manage travel listings effectively.
###### Do Travel Managers have the ability to manage travel listings effectively?
##### Verify if Travel Managers can view and interact with subscriber lists for their travels.
###### Can Travel Managers interact with subscriber lists effectively?
##### Verify if Travel Managers can access analytics about their travel listings and subscriber feedback.
###### Do Travel Managers have access to analytics on their listings?
##### Ensure that Traveler profiles are comprehensive, displaying past participations, feedback given, and reports made.
###### Are Traveler profiles detailed and informative?
##### Check the security and straightforwardness of the login process for all user roles.
###### Is the login process secure and straightforward for all user roles?
##### Confirm that role-based access controls are correctly enforced, preventing unauthorized actions across the system.
###### Are role-based access controls properly enforced?
##### Verify if data is transmitted securely using SSL/TLS encryption.
###### Is data transmission secured with SSL/TLS encryption?
##### Check if sensitive data and credentials are managed securely, adhering to best practices.
###### Are sensitive data and credentials handled securely?
##### Assess if the system handles high traffic volumes effectively without significant performance degradation.
###### Can the system effectively handle high traffic volumes while ensuring actions within the app can be completed in under 5 seconds without performance degradation?
##### Check if there is a fallback mechanism to ensure continuity of core functionalities in case of a service failure.
###### Is there a fallback mechanism for service failures?
##### Verify if the user interface is responsive across different devices and screen sizes.
###### Is the UI responsive on various devices?
##### Ensure the UI facilitates easy navigation and access to features for users of all roles.
###### Does the UI support easy navigation for all user roles?
##### Check if the system adheres to data protection regulations and privacy laws.
###### Does the system comply with data protection
##### Read random parts from the code base.
###### Is the code readable and simple to understand?
###### Is the code well separated? Did the students convince you about that?
##### Verify if the platform is protected against SQL injection and XSS.
###### Can the student prove that the platform is protected against SQL injection?
###### Can the student prove that the platform is protected against XSS?
##### Verify if Passwords are encrypted.
###### Are passwords encrypted?
#### Bonus
##### Review if the system has been implemented as a Progressive Web App (PWA) to enhance the mobile user experience.
###### +Has the system been implemented as a Progressive Web App (PWA) to enhance the mobile user experience?
###### +Do PWA features such as offline functionality, background sync, and push notifications work correctly across various mobile devices?
###### +Is the application's load time optimized for mobile use, following PWA best practices?
##### Verify if multilingual support is integrated into the system to cater to a global user base effectively.
###### +Is multilingual support integrated into the system to cater to a global user base effectively?
###### +Can users seamlessly switch between languages, and is the language preference persistently stored for future sessions?
###### +Does multilingual support cover all aspects of the platform, including user interface elements, notifications, and user-generated content?
##### Review if any innovative features have been introduced that significantly enhance user engagement or the value of the platform.
###### +Has the project introduced any innovative features that significantly enhance user engagement or the value of the platform?
###### +Are these innovative features functioning as intended without causing any errors or issues within the system?
###### +Do these features demonstrate a clear understanding and application of current technologies or methodologies to solve user needs or improve the platform?
Loading…
Cancel
Save