Skip to content

raaaaavi/LaunchPad-

Repository files navigation

LaunchPad - A Tech Social Media Application

LaunchPad is a comprehensive tech-focused social media platform designed for tech enthusiasts to connect, share knowledge, watch podcasts, chat, and trade products through an integrated marketplace.

Project Overview

LaunchPad serves as a hub for the tech community, combining features from popular social platforms with specialized tools for tech professionals and hobbyists. The application provides a seamless experience for knowledge sharing and community engagement.

Core Features

1. Social Feed and Tech Posts

Users can share their insights, project updates, and tech news with the community.

  • Create and share text and image-based posts.
  • View a dynamic feed of featured and recent posts from other tech enthusiasts.
  • Interact with posts through likes and comments (based on model definitions).

2. Tech Podcasts

A dedicated section for educational and informative tech content.

  • Watch curated tech podcasts directly within the application.
  • Powered by the youtube_player_flutter package for a seamless video experience.
  • Access a library of tech-focused video content.

3. Real-time Messaging

Connect and collaborate with other users through a built-in chat system.

  • Private messaging with friends and other community members.
  • Real-time message updates powered by Cloud Firestore.
  • Intuitive chat interface with message status indicators.

4. Tech Marketplace

A specialized marketplace for buying and selling tech-related products.

  • List products for sale with detailed descriptions, prices, and images.
  • Browse a wide range of tech hardware, software, and accessories.
  • Secure payment processing integrated with Stripe for safe transactions.
  • Order management and tracking within the application.

5. Job Search

A dedicated portal for exploring tech career opportunities.

  • Browse job listings tailored for tech professionals.
  • Search for roles based on specific criteria.

Technical Architecture

The application is built using a modern mobile development stack focused on scalability and real-time performance.

Frontend

  • Framework: Flutter (Dart)
  • State Management: Provider
  • Navigation: Animated Bottom Navigation Bar
  • UI Components: Material Design with custom Google Fonts integration

Backend and Services

  • Authentication: Firebase Authentication (Email/Password, etc.)
  • Database: Cloud Firestore (NoSQL real-time database)
  • Storage: Firebase Storage (for images and media files)
  • Payment Gateway: Stripe (via flutter_stripe)
  • API Interaction: Dio (for networking tasks)

Key Models

  • user.dart: Manages user profiles and authentication data.
  • post.dart: Defines the structure for social media posts.
  • market_place.dart: Handles product listings and marketplace data.
  • chat_message.dart: Represents messages in the communication system.
  • podcast.dart: Structures data for tech video content.
  • order.dart: Manages marketplace transaction records.

Technical Instructions

Prerequisites

  • Flutter SDK (latest stable version)
  • Dart SDK
  • Firebase Account and Project
  • Stripe Account (for marketplace features)
  • Android Studio or VS Code with Flutter extensions

Initial Setup

  1. Clone the repository to your local machine.
  2. Navigate to the project directory in your terminal.
  3. Run the following command to install all dependencies:
    flutter pub get

Firebase Configuration

  1. Create a new Firebase project in the Firebase Console.
  2. Enable Authentication (Email/Password), Cloud Firestore, and Firebase Storage.
  3. Register your Android and iOS apps in the Firebase project settings.
  4. Download the google-services.json file for Android and place it in the android/app/ directory.
  5. Download the GoogleService-Info.plist file for iOS and place it in the ios/Runner/ directory.
  6. The firebase_options.dart file should be updated with your specific project configurations if necessary.

Stripe Integration

  1. Obtain your Publishable and Secret keys from the Stripe Dashboard.
  2. Configure the Stripe keys in the lib/services/stripe_services.dart file or through your environment variables.
  3. Ensure the native configurations for Stripe are set up correctly in android/app/build.gradle and ios/Runner/Info.plist.

Running the Application

To run the app on a connected device or emulator, use:

flutter run

Directory Structure

  • lib/auth: Handles authentication screens and logic.
  • lib/model: Data structures and models for the entire application.
  • lib/providers: State management logic for different features.
  • lib/screens: UI screens for social feed, marketplace, podcasts, chat, etc.
  • lib/services: External service integrations like Firebase and Stripe.
  • lib/widgets: Reusable UI components used across the application.

About

PUSL2023 Project. Social Media Application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages