Skip to content

Rajath2005/SmartCityApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Smart City Guide Banner

πŸ™οΈ Smart City Guide

Your intelligent companion to explore, navigate, and discover the city


Java CLI License PRs Welcome Contributors Stars Forks Issues Open Source Helpers

πŸš€ Get Started Β |Β  ✨ Features Β |Β  πŸ—οΈ Project Structure Β |Β  🀝 Contributing Β |Β  πŸ—ΊοΈ Roadmap


πŸ“Œ Overview

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!


✨ Features

πŸ‘€ User Features

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

πŸ› οΈ Admin Features

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)

πŸ—οΈ Project Structure

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

πŸ”‘ Key Classes

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

πŸš€ Getting Started

βœ… Prerequisites

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

⚑ Quick Start

# 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.java directly β€” no terminal needed!


πŸ› οΈ Technology Stack

Layer Technology
Language Java β˜•
Interface Command Line Interface (CLI)
Data Storage In-Memory (HashMap, ArrayList)
Architecture Role-Based (User / Admin)

🀝 Contributing

We ❀️ contributions β€” whether you're fixing a bug, adding a feature, or improving docs!

🌱 First Time Contributing? Start Here!

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 SmartCityApp

Step 3: Create a new branch

git checkout -b feature/your-feature-name

🧠 Use a descriptive branch name like feature/add-search-filter or fix/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-name

Then go to your fork on GitHub and click "Open Pull Request" πŸŽ‰


πŸ“‹ Contribution Guidelines

  • πŸ› Bug Reports β†’ Open an Issue with a clear description and steps to reproduce
  • πŸ’‘ Feature Requests β†’ Open an Issue with the enhancement label
  • πŸ“ Documentation β†’ Improvements to README, comments, or Javadocs are always welcome
  • βœ… Good First Issues β†’ Look for issues tagged good first issue to get started easily

πŸ‘₯ Contributors

A huge shoutout to everyone who has contributed to this project! πŸ™Œ

Contributors

Want to see your face here? Make a contribution!


πŸ—ΊοΈ Roadmap

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!


πŸ“Š Project Status

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

πŸ“„ License

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.


⭐ Support the Project

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

Made with ❀️ by Rajath2005 and the community

Part of the Creative Coding Progress Series


Back to Top

About

πŸ™οΈ A console-based Java app to explore, search & manage city attractions β€” with role-based access for Users & Admins. Beginner-friendly & open for contributions!

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors

Languages