CityPulse is a powerful, native Android application designed to bridge the gap between urban data and citizen awareness. By monitoring and visualizing key urban health parameters—such as infrastructure, air quality, and population density—CityPulse provides meaningful insights that empower users to understand and compare the health of various cities.
Built with Java and the Android SDK, the app leverages real-world CSV datasets to provide a seamless and informative experience.
| Feature | Description |
|---|---|
| 🔐 Secure Authentication | A complete onboarding experience with Splash, Login, and Registration screens. |
| 🏠 City Exploration | A dynamic home dashboard featuring a searchable list of cities powered by RecyclerView. |
| 📊 Urban Health Metrics | Deep-dive into specific city data including Health Index, AQI, Green Cover, Urban Heat Island, and Flood Risk. |
| ⚖️ Side-by-Side Comparison | Compare two cities simultaneously to analyze performance across various metrics. |
| 👤 User Profiles | Manage your personal information and home city preferences. |
| ⚙️ App Settings | Customize your experience with localized settings and logout options. |
| 📄 CSV Data Engine | Dynamically parses urban data from a local cities_data.csv for up-to-date information. |
- Language: Java
- UI Framework: XML Layouts with Material Design 3 (M3) components.
- Data Handling: Custom CSV Parsing via
AssetsManager. - Components:
RecyclerView,CardView,ConstraintLayout,MaterialToolbar. - Build System: Gradle (Kotlin DSL).
- Architecture: Standard Android Activity-based architecture with separated data models and adapters.
CityPulse/
├── app/
│ ├── src/main/
│ │ ├── assets/ # Real-world CSV data (cities_data.csv)
│ │ ├── java/ # Source code (Activities, Models, Adapters)
│ │ ├── res/ # UI Resources (Layouts, Drawables, Values)
│ │ └── AndroidManifest.xml
│ └── build.gradle.kts # App configurations
└── settings.gradle.kts # Project structure
- Android Studio (Hedgehog 2023.1.1+)
- JDK 11 or higher
- Android SDK API level 34 (Target)
- Clone the Repository:
git clone https://github.com/invo-coder19/CityPulse.git
- Open Project: Launch Android Studio and select the
CityPulsefolder. - Sync Gradle: Let Android Studio download dependencies and sync the project.
- Run: Connect a physical device or start an emulator and click the Run
▶️ button.
The project includes both unit and instrumented tests to ensure stability:
- Unit Tests:
./gradlew test - Instrumented Tests:
./gradlew connectedAndroidTest
We welcome contributions! If you have suggestions for new features or data improvements:
- Fork the Project.
- Create your Feature Branch (
git checkout -b feature/AmazingFeature). - Commit your Changes (
git commit -m 'Add some AmazingFeature'). - Push to the Branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.
Built with ☕ and ❤️ for better cities.
