This project implements a basic search engine using Object-Oriented Programming (OOP) concepts in Java. Developed as part of an academic curriculum, it served as a comprehensive exercise to deepen my understanding of OOP principles, software design, and core search engine functions.
The search engine is designed with modular components such as an indexer, scheduler (ordonnanceur), and analyzer, which together enable processing and retrieving information efficiently.
- Object-Oriented Programming (OOP): Class design, encapsulation, inheritance, polymorphism, and abstraction.
- Software Design Principles: Modularization, separation of concerns, single responsibility principle, and maintainability.
- Search Engine Components:
- Indexer: Processes documents and builds searchable indices.
- Scheduler (Ordonnanceur): Manages task execution order and concurrency.
- Analyzer: Parses and interprets search queries and document content.
MOTEURDERECHERCHE/ ├── src/ # Java source files for all components ├── results/ # Output files (ignored by Git) ├── README.md # Project documentation └── .gitignore # Specifies files/folders ignored by Git
- Compile the Java source files located in the
src/folder: javac -d bin src/*.java - Run the main class (
main.java): java -cp bin main
- Implement advanced indexing algorithms for better performance and scalability
- Add support for complex query parsing and ranking
- Develop a graphical or web-based user interface for easier interaction
This academic project was a valuable introduction to both Object-Oriented Programming and the foundational concepts of search engines. It strengthened my skills in software design, problem decomposition, and Java programming, providing a solid foundation for more complex software development challenges.
Feel free to explore the code and reach out if you have questions or suggestions!