π Get Started Β |Β β¨ Features Β |Β ποΈ Project Structure Β |Β π€ Contributing Β |Β πΊοΈ Roadmap
Smart City Guide is an interactive, console-based Java application that helps residents and tourists discover, search, and navigate city attractions with ease. It simulates a smart city environment with a complete role-based system for both regular users and administrators.
Whether you're looking for the best restaurant downtown or managing the city's attraction database as an admin β this app has you covered.
β οΈ Note: The application currently uses in-memory storage. All data resets when the application is restarted. Persistent storage is on the roadmap!
| Feature | Description |
|---|---|
| π Register & Login | Secure account creation and authentication |
| πΊοΈ View Attractions | Browse a curated list of city places |
| π Search by Category | Find places by type β Restaurant, Park, Hotel, Museum |
| π Search by Location | Find places in specific areas like Downtown or Main Street |
| π Navigation | Simulated access to directions and nearby services |
| Feature | Description |
|---|---|
| β Add Place | Add new city attractions to the database |
| βοΈ Update Place | Edit details of existing places |
| β Delete Place | Remove outdated or incorrect entries |
| π System Monitoring | View system logs and user activity (Simulated) |
SmartCityGuide/
β
βββ π Assets/
β βββ SmartCity.drawio.png # Architecture diagram
β
βββ π src/
β βββ com/
β βββ smartcity/
β βββ π main/
β β βββ SmartCityApp.java # Main entry point & controller
β βββ π model/
β βββ Place.java # City place data model
β βββ User.java # User data model & roles
β
βββ README.md
βββ .gitignore
| Class | Role |
|---|---|
SmartCityApp.java |
Main logic, menu flow, and application controller |
Place.java |
Represents a city attraction with name, category, and location |
User.java |
Manages user data, credentials, and role assignment |
Make sure you have the following installed:
- β Java JDK 8 or higher β Download here
- π» Terminal / IDE β VS Code, IntelliJ IDEA, or Eclipse
Verify your Java installation:
java -version# 1. Clone the repository
git clone https://github.com/Rajath2005/SmartCityApp.git
# 2. Navigate into the project
cd SmartCityApp/src
# 3. Compile the application
javac com/smartcity/main/SmartCityApp.java
# 4. Run the application
java com.smartcity.main.SmartCityAppπ‘ Tip for beginners: If you're using an IDE like IntelliJ or Eclipse, simply import the project and run
SmartCityApp.javadirectly β no terminal needed!
| Layer | Technology |
|---|---|
| Language | Java β |
| Interface | Command Line Interface (CLI) |
| Data Storage | In-Memory (HashMap, ArrayList) |
| Architecture | Role-Based (User / Admin) |
We β€οΈ contributions β whether you're fixing a bug, adding a feature, or improving docs!
New to open source? Don't worry β here's a step-by-step guide:
Step 1: Fork the repository
Click the Fork button at the top-right of this page.
Step 2: Clone your fork
git clone https://github.com/<your-username>/SmartCityApp.git
cd SmartCityAppStep 3: Create a new branch
git checkout -b feature/your-feature-nameπ§ Use a descriptive branch name like
feature/add-search-filterorfix/login-bug.
Step 4: Make your changes
Write clean, well-commented code. Test it locally before committing.
Step 5: Commit your work
git add .
git commit -m "β¨ Add: brief description of your change"Step 6: Push and open a Pull Request
git push origin feature/your-feature-nameThen go to your fork on GitHub and click "Open Pull Request" π
- π Bug Reports β Open an Issue with a clear description and steps to reproduce
- π‘ Feature Requests β Open an Issue with the
enhancementlabel - π Documentation β Improvements to README, comments, or Javadocs are always welcome
- β
Good First Issues β Look for issues tagged
good first issueto get started easily
A huge shoutout to everyone who has contributed to this project! π
Want to see your face here? Make a contribution!
Here's what's coming next. Feel free to pick one up!
- πΎ Persistent Storage β Save data using file I/O or a database (SQLite/MySQL)
- π REST API β Expose features via a Spring Boot REST API
- π₯οΈ GUI Interface β Build a JavaFX or Swing-based graphical UI
- β Ratings & Reviews β Let users rate and review places
- πΊοΈ Map Integration β Integrate with a maps API for real navigation
- π Notifications β Alert users about new attractions nearby
- π§ͺ Unit Tests β Add JUnit tests for all core classes
π‘ See something you'd like to build? Check the Issues tab or open a new one!
| Status | Description |
|---|---|
| π’ Active | Actively maintained and open for contributions |
| π« Education | Built as part of the Creative Coding Progress series |
| π€ Beginner Friendly | Great project for Java learners and first-time contributors |
This project is licensed under the MIT License β see the LICENSE file for details.
You are free to use, modify, and distribute this project with attribution.
If you found this project helpful or interesting:
- β Star the repository β it means a lot!
- π΄ Fork it and build your own version
- π€ Contribute a feature or fix
- π£ Share it with fellow Java learners