Identification and classification of rock are essential and critical in geotechnical engineering. The mechanical properties of rock could be determined by laboratory tests. However, the identification of the type and grade of rock rely on professional judgment. In traditional teaching, students would base on the classification rules to determine the type and grade of rock in a laboratory and during geology field trips. However, the formation of rock is complex, and there are high variations in the classification process. In order to build up students’ confidence and establish their decision rules, this project proposes to develop a web-based training platform, the GeoEngine, including a rock pattern recognition tool to encourage self-directed learning and discovery skills. The GeoEngine will provide training to enable students mastering the skills in rock classification. However, the focus of the system is to allow students to modify the classification rules with reference to their perceived priority and to provide feedback to improve the newly developed rock pattern recognition tool. Exercises will also be included in the system to assess students’ understanding and performance. Moreover, geology maps prepared by students will be selected and uploaded to form a geology repository for future training. Students’ contributions through the GeoEngine are the core of the discovery-enriched teaching approach embedded in this project.