TechPulse is a modern Android news application designed specifically for university students. Stay connected with campus news, university events, academic announcements, and student activities. Built with clean architecture principles and modern Android development practices, TechPulse offers a seamless and engaging experience tailored for the university community.
- Top Stories: Auto-scrolling carousel featuring the most important campus news
- Latest Updates: Real-time updates with university announcements and student news
- Smart Categorization: Filter news by categories (Academics, Sports, Events, Student Life, etc.)
- Tags System: Easy navigation through department-specific and topic-based content
- Immersive News Reader: Full-screen article reading optimized for academic content
- Estimated Read Time: Smart calculation of reading duration for busy students
- Rich Media Support: High-quality images with zoom functionality for detailed campus photos
- Author Information: Detailed profiles of university staff, faculty, and student writers
- Firebase Authentication: Secure login and registration with university email validation
- Student Profiles: Customizable profiles with student ID, major, and year information
- Profile Editing: Update personal information, academic details, and interests
- Password Management: Secure password change functionality
- University Events: Comprehensive list of upcoming campus events and activities
- Event Details: Complete information about lectures, seminars, student activities, and campus meetings
- Event Categories: Filter events by type (Academic, Social, Sports, Club Activities, Career Events)
- Pull-to-Refresh: Instant content updates for the latest campus news
- Offline Support: Read saved articles even when campus WiFi is down
- Dark Mode Ready: Eye-friendly reading perfect for late-night study sessions
- Responsive Design: Optimized for all devices students use
- Automated Testing: Maestro UI automation testing for reliable app performance
- Material Design: Clean, modern interface designed for students
- Smooth Animations: Fluid transitions and micro-interactions
- Navigation Drawer: Easy access to all campus information
- Tab Navigation: Quick switching between news, events, and academic content
TechPulse is built using MVP (Model-View-Presenter) architecture pattern for clean separation of concerns:
π¦ com.example.techpulse
βββ π model/ # Data models and entities
βββ π presenter/ # Business logic and UI interaction
βββ π repository/ # Data layer abstraction
βββ π adapter/ # RecyclerView adapters
βββ π ui/ # UI management classes
βββ π navigation/ # Navigation management
βββ π utils/ # Utility classes
- MainPresenter: Manages news loading and user interactions
- SettingsPresenter: Handles user preferences and account settings
- Repository Pattern: Clean data access layer
- ViewSetupManager: Centralized UI initialization
- NavigationManager: Streamlined navigation flow
- Language: Java
- Min SDK: API 28 (Android 9.0)
- Target SDK: API 35
- Build Tool: Gradle with Kotlin DSL
- Firebase Auth: User authentication and management
- Firebase Firestore: Cloud database for user data
- Glide: Efficient image loading and caching
- PhotoView: Pinch-to-zoom image viewing
- Material Components: Modern UI components
- SwipeRefreshLayout: Pull-to-refresh functionality
- Maestro: Mobile UI automation testing framework
- JUnit: Unit testing framework
- Espresso: Android instrumentation testing
- RecyclerView: Efficient list rendering
- ViewPager2: Smooth page transitions
- Navigation Drawer: Side navigation menu
- ConstraintLayout: Flexible UI layouts
- Android Studio Arctic Fox or newer
- JDK 11 or higher
- Android SDK with API level 28+
- Firebase Project (for authentication and database)
- Maestro CLI (optional, for running UI tests)
git clone https://github.com/ms-rex/techpulse.git
cd techpulse- Create a new Firebase project at Firebase Console
- Add an Android app to your project
- Download
google-services.jsonand place it in theapp/directory - Enable Authentication and Firestore in Firebase Console
# Open in Android Studio
# Sync project with Gradle files
# Run on device or emulator# Install Maestro CLI for UI automation testing
curl -Ls "https://get.maestro.mobile.dev" | bash
# Add to your PATH (add to ~/.bashrc or ~/.zshrc)
export PATH="$PATH":"$HOME/.maestro/bin"
# Run Maestro tests
maestro test .maestro/TechPulse is built with quality in mind, featuring comprehensive testing strategies:
- End-to-End Testing: Complete user journey validation
- Cross-Device Testing: Automated testing across different screen sizes
- Regression Testing: Ensure new features don't break existing functionality
- User Flow Validation: Login, registration, news reading, and profile management flows
π¦ .maestro/
βββ π login_flow.yaml # User authentication tests
βββ π news_reading.yaml # News browsing and reading tests
βββ π profile_management.yaml # User profile operations
βββ π events_navigation.yaml # Events section functionality
βββ π regression_suite.yaml # Complete app regression tests
# Run all Maestro tests
maestro test .maestro/
# Test on specific device
maestro test --device-id <device-id> .maestro/
# Generate test report
maestro test .maestro/ --format junit --output test-results.xml- UI Test Coverage: 85%+ critical user paths
- Performance Testing: Load time validation
- Accessibility Testing: Screen reader compatibility
- Compatibility Testing: Android 9.0+ devices
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Android Code Style Guidelines
- Write meaningful commit messages
- Add proper documentation for new features
- Ensure all tests pass before submitting
- Add Maestro UI tests for new user flows
- Test on multiple device configurations
Found a bug or have a feature request? Please create an issue:
- Bug Reports: Use the bug report template
- Feature Requests: Use the feature request template
- Questions: Check existing issues or create a discussion
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2024 TechPulse
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
- Firebase for authentication and database services
- Material Design for UI/UX guidelines
- Android Developer Community for continuous support
- University Students for feedback and feature suggestions
- Open Source Contributors who make development better
Made with β€οΈ for University Students
- v1.0.0 - Initial release with core features
- University news feed with categorization
- Student authentication and profiles
- Campus events listing
- Modern UI with Material Design tailored for students
- Push Notifications for urgent campus announcements
- Bookmarks to save important university updates
- Social Sharing integration for student collaboration
- Dark Mode implementation for comfortable reading
- Offline Reading with local database for campus content
- Search Functionality across all university news and events
- Comments System for student discussions on articles
- Multi-language Support for international students
- Academic Calendar Integration with important dates and deadlines
- Student Club Integration for club-specific news and events
- Enhanced Test Coverage with comprehensive Maestro flows
- CI/CD Pipeline with automated Maestro testing







