- Introduction
- Features
- Screenshots
- Installation
- Usage
- Firebase Integration
- Contributing
- License
- Contact
LinkUp is a modern and interactive mobile application built in Kotlin, integrated with Firebase for real-time data management and storage. The app allows users to share photos, interact with posts, manage their profiles, and explore short video reels. With a responsive and intuitive user interface, LinkUp ensures smooth social engagement.
-
📸 Post Creation
Users can upload photos with captions, which are stored in Firebase Storage and displayed in a real-time feed. -
🎥 Reel Feature
Users can upload short videos that are showcased in the reels section for interactive content browsing. -
🔄 Real-Time Feed
Posts are updated instantly using Firestore, allowing seamless interaction with other users’ posts. -
❤️ Likes & Comments
Users can like posts and leave comments, updated in real time. -
👤 User Profiles
Users can create and edit their profiles, including changing profile pictures and updating bios. -
➕ Follow System
Users can follow/unfollow others to customize their feeds. -
🖼️ Full-Screen Post View
Users can view posts in full-screen mode by tapping on the post image. -
📤 Share Post
Users can share posts to other platforms or directly with friends. -
🗑️ Delete Post
Users can delete their own posts from their feed or profile. -
📱 Responsive Design
The UI is designed for a smooth and intuitive experience across various screen sizes.
Here are some screenshots of the LinkUp app:
Step-by-step instructions to set up the LinkUp app:
-
Clone the repository:
git clone https://github.com/Aadarsh45/LinkUp.git
-
Open the project in Android Studio.
-
Build the project:
- Sync Gradle by clicking on "Sync Now" in the top right corner if prompted.
-
Run the application:
- Connect your Android device or start an emulator.
- Click on the "Run" button or use the shortcut
Shift + F10
.
Instructions for using the app:
- Open the LinkUp app on your device.
- Create and share posts with photos or short videos.
- Interact with posts by liking or commenting.
- View posts in full-screen mode by tapping on the post image.
- Share posts with others or delete your own posts.
- Explore the reel feature for short video content.
- Edit your profile, follow other users, and customize your feed.
// Firebase Authentication for User Login
val auth = FirebaseAuth.getInstance()
fun loginUser(email: String, password: String) {
auth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener { task ->
if (task.isSuccessful) {
Log.d("Login", "Login successful")
} else {
Log.d("Login", "Login failed: ${task.exception?.message}")
}
}
}
// Firestore Database for Storing Posts
val db = FirebaseFirestore.getInstance()
fun addPost(post: Post) {
db.collection("posts")
.add(post)
.addOnSuccessListener { documentReference ->
Log.d("Firestore", "Post added with ID: ${documentReference.id}")
}
.addOnFailureListener { e ->
Log.w("Firestore", "Error adding post", e)
}
}
// Uploading Image to Firebase Storage
val storageRef = FirebaseStorage.getInstance().reference.child("posts/${UUID.randomUUID()}.jpg")
fun uploadImage(fileUri: Uri) {
storageRef.putFile(fileUri)
.addOnSuccessListener {
Log.d("Storage", "Image upload successful")
}
.addOnFailureListener { e ->
Log.w("Storage", "Image upload failed", e)
}
}
Contributions are welcome! Please follow these steps to contribute:
-
Fork the repository.
-
Create a new branch:
git checkout -b feature-name
-
Make your changes.
-
Commit your changes:
git commit -m 'Add some feature'
-
Push to the branch:
git push origin feature-name
-
Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
For any questions or suggestions, feel free to reach out at aadarshchaurasia45@gmail.com.