Skip to content

A comprehensive social networking platform designed specifically for East Delta University students to connect, share, and collaborate within their academic community.

License

Notifications You must be signed in to change notification settings

aroyy007/AcademiaConnectApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

81 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Academia Connect Logo

A comprehensive social networking platform designed specifically for East Delta University students to connect, share, and collaborate within their academic community.

React Native Expo TypeScript Supabase License


πŸ“š Quick Navigation

πŸ“– Documentation Hub

  • πŸ—„οΈ Database Schema - Complete database documentation, table structures, and relationships
  • πŸš€ API Reference - Comprehensive REST API endpoints and authentication guide
  • πŸ“± Main Documentation - You are here! Project overview and setup guide

πŸ“‹ Table of Contents


πŸ“± Screenshots

Welcome Screen
Welcome Screen
Login Screen
Login Screen
Feed Screen
Feed Screen
Profile Screen
Profile Screen
Schedule Screen
Schedule Screen
Notification Screen
Notification Screen

🎯 Overview

Academia Connect is a modern, feature-rich social networking platform built specifically for East Delta University. It combines social media functionality with academic tools to create a comprehensive ecosystem for students and faculty to interact, share knowledge, and manage their academic life.

Key Highlights

  • πŸŽ“ Academic-First Design: Built specifically for university environments
  • πŸ” Secure Authentication: EDU email validation and secure session management
  • πŸ“± Cross-Platform: Native iOS, Android, and Web support via Expo
  • ⚑ Real-Time Features: Live messaging, notifications, and updates
  • 🎨 Modern UI/UX: Clean, accessible design with dark/light theme support
  • πŸ”’ Privacy-Focused: Comprehensive RLS policies and data protection

✨ Features

πŸ” Authentication & Security

  • EDU Email Validation: Restricted to @eastdelta.edu.bd emails - API Details
  • Secure Session Management: JWT-based authentication with Supabase - Auth Flow
  • Profile Creation: Comprehensive academic profile setup - Database Schema
  • Avatar Management: Image upload and management system - Upload API
  • Session Persistence: Automatic login state management
  • Google OAuth: Alternative sign-in method (configured)

πŸ‘₯ Social Features

  • Dynamic Feed: Personalized content feed with friend posts and announcements - Feed API
  • Post Creation: Rich text posts with image attachments - Create Post API
  • Engagement System: Like and comment functionality - Likes & Comments
  • Real-Time Updates: Live feed updates using Supabase subscriptions
  • Content Moderation: Announcement system for official communications
  • Media Sharing: Image upload and display with optimized storage - Posts Schema

🀝 Friend System

  • Friend Requests: Send, receive, accept, and reject friend requests - Friend Requests API
  • Bidirectional Relationships: Automatic mutual friendship creation - Friendships Schema
  • Friend Management: View and manage friend connections - Friendships API
  • Real-Time Notifications: Instant friend request notifications
  • Privacy Controls: Friend-only content visibility - RLS Policies

πŸ‘€ Profile Management

  • Academic Profiles: Department, semester, section information
  • Role-Based System: Student and faculty role distinction
  • Profile Editing: Comprehensive profile update functionality
  • Avatar System: Profile picture upload and management
  • Academic Information: Student ID, department affiliation, current semester

πŸ” Search & Discovery

  • User Search: Search by name or email with real-time results
  • Advanced Filters: Department and semester-based filtering
  • Friend Status: Visual indicators for friend relationships
  • Quick Actions: Direct friend request sending from search results

πŸ’¬ Messaging System (In Development)

  • Real-Time Messaging: Instant message delivery - Messages API
  • Direct Messages: One-on-one conversations - Conversations API
  • Group Chats: Multi-user conversation support - Conversation Schema
  • Media Sharing: Image, document, and file sharing
  • Read Receipts: Message read status tracking
  • Typing Indicators: Real-time typing status
  • Message Threading: Reply-to-message functionality - Messages Schema

πŸ“… Schedule Management (In Development)

  • Course Enrollment: Join and manage course schedules
  • Schedule Display: Visual timetable representation
  • Time Conflict Detection: Automatic scheduling conflict resolution
  • Faculty Schedule Management: Instructor schedule creation and management
  • Academic Calendar: Important dates and events

πŸ”” Notification System

  • Real-Time Notifications: Instant push notifications
  • Notification Types: Friend requests, post interactions, announcements
  • Notification Management: Mark as read, bulk actions
  • Customizable Settings: Notification preferences

πŸ—οΈ Technical Architecture

Frontend Stack

React Native 0.79.0
β”œβ”€β”€ Expo SDK ~53.0.11          # Development platform and build tools
β”œβ”€β”€ TypeScript ~5.3.0          # Type safety and developer experience
β”œβ”€β”€ Expo Router ~5.1.0         # File-based navigation system
β”œβ”€β”€ React Navigation 7.0.0     # Navigation library
β”œβ”€β”€ Formik 2.4.6              # Form handling and validation
β”œβ”€β”€ Yup 1.3.3                 # Schema validation
β”œβ”€β”€ Lucide React Native        # Icon system
β”œβ”€β”€ React Native Reanimated    # Animations and gestures
└── Expo Vector Icons          # Additional icon sets

Backend Stack

Supabase (Backend-as-a-Service)
β”œβ”€β”€ PostgreSQL Database        # Primary data storage
β”œβ”€β”€ Row Level Security (RLS)   # Data access policies
β”œβ”€β”€ Real-time Subscriptions   # Live data updates
β”œβ”€β”€ Authentication            # User management and JWT
β”œβ”€β”€ Storage                   # File and media storage
β”œβ”€β”€ Edge Functions           # Serverless functions
└── Database Functions       # Custom PostgreSQL functions

Development Tools

Development Environment
β”œβ”€β”€ Expo CLI                  # Development server and build tools
β”œβ”€β”€ Metro Bundler            # JavaScript bundler
β”œβ”€β”€ Babel                    # JavaScript transpiler
β”œβ”€β”€ ESLint                   # Code linting
β”œβ”€β”€ Prettier                 # Code formatting
└── TypeScript Compiler     # Type checking

πŸš€ Installation & Setup

Prerequisites

Ensure you have the following installed:

  • Node.js (v16 or higher)
  • npm or yarn
  • Expo CLI (npm install -g @expo/cli)
  • Git
  • iOS Simulator (macOS) or Android Studio (for Android development)

Environment Setup

  1. Clone the Repository

    git clone https://github.com/aroyy007/AcademiaConnectApp.git
    cd academiaconnectapp
  2. Install Dependencies

    npm install
    # or
    yarn install
  3. Environment Configuration

    Create a .env file in the root directory:

    # Supabase Configuration
    EXPO_PUBLIC_SUPABASE_URL=your_supabase_project_url
    EXPO_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
    
    # Optional: Google OAuth (if using)
    EXPO_PUBLIC_GOOGLE_CLIENT_ID=your_google_client_id
  4. Supabase Setup

    • Create a new Supabase project at supabase.com
    • Run the SQL scripts in the supabase/ directory in order:
      # Execute these in your Supabase SQL editor
      1. create_core_tables_and_policies.sql
      2. create_messaging_tables_and_rls.sql
      3. create_storage_buckets_and_policies.sql
      4. seed_departments_courses_schedules.sql
    • Configure Storage buckets for avatars, posts, and messages
    • Set up authentication providers if using OAuth
  5. Start Development Server

    npm start
    # or
    expo start
  6. Run on Device/Simulator

    • iOS: Press i in the terminal or scan QR code with Camera app
    • Android: Press a in the terminal or scan QR code with Expo Go app
    • Web: Press w in the terminal

πŸ‘¨β€πŸ’» Development Guide

Project Structure

academia-connect/
β”œβ”€β”€ app/                          # Expo Router pages
β”‚   β”œβ”€β”€ (tabs)/                   # Tab-based navigation
β”‚   β”‚   β”œβ”€β”€ feed.tsx             # Main feed screen
β”‚   β”‚   β”œβ”€β”€ profile.tsx          # User profile screen
β”‚   β”‚   β”œβ”€β”€ schedule.tsx         # Schedule management
β”‚   β”‚   β”œβ”€β”€ notifications.tsx    # Notifications screen
β”‚   β”‚   └── create.tsx           # Post creation screen
β”‚   β”œβ”€β”€ index.tsx                # Welcome/landing screen
β”‚   β”œβ”€β”€ login.tsx                # Authentication screen
β”‚   β”œβ”€β”€ signup.tsx               # Registration screen
β”‚   └── _layout.tsx              # Root layout configuration
β”œβ”€β”€ components/                   # Reusable UI components
β”‚   β”œβ”€β”€ auth/                    # Authentication components
β”‚   β”œβ”€β”€ messaging/               # Chat and messaging components
β”‚   β”œβ”€β”€ profile/                 # Profile-related components
β”‚   └── ui/                      # Generic UI components
β”œβ”€β”€ constants/                    # Design system constants
β”‚   β”œβ”€β”€ colors.ts               # Color palette
β”‚   β”œβ”€β”€ typography.ts           # Font and text styles
β”‚   └── spacing.ts              # Spacing and border radius
β”œβ”€β”€ hooks/                       # Custom React hooks
β”‚   β”œβ”€β”€ useAuth.ts              # Authentication logic
β”‚   β”œβ”€β”€ usePosts.ts             # Post management
β”‚   β”œβ”€β”€ useFriends.ts           # Friend system logic
β”‚   β”œβ”€β”€ useMessages.ts          # Messaging functionality
β”‚   └── useSchedule.ts          # Schedule management
β”œβ”€β”€ lib/                         # External service integrations
β”‚   └── supabase.ts             # Supabase client and helpers
β”œβ”€β”€ types/                       # TypeScript type definitions
β”‚   β”œβ”€β”€ database.ts             # Database schema types
β”‚   └── env.d.ts                # Environment variable types
β”œβ”€β”€ utils/                       # Utility functions
β”‚   β”œβ”€β”€ imageUtils.ts           # Image processing helpers
β”‚   └── validation.ts           # Form validation schemas
β”œβ”€β”€ supabase/                    # Database schema and migrations
β”‚   β”œβ”€β”€ create_core_tables_and_policies.sql
β”‚   β”œβ”€β”€ create_messaging_tables_and_rls.sql
β”‚   └── seed_departments_courses_schedules.sql
β”œβ”€β”€ assets/                      # Static assets
β”‚   └── images/                 # App images and icons
β”œβ”€β”€ package.json                # Dependencies and scripts
β”œβ”€β”€ app.json                    # Expo configuration
β”œβ”€β”€ tsconfig.json               # TypeScript configuration
└── README.md                   # Project documentation

🀝 Contributing

We welcome contributions from the community! Here's how you can help:

Getting Started

  1. Fork the Repository

    git clone https://github.com/aroyy007/AcademiaConnectApp.git
    cd academia-connect
  2. Create a Feature Branch

    git checkout -b feature/amazing-feature
  3. Make Your Changes

    • Follow the code style guidelines
    • Add tests for new functionality
    • Update documentation as needed
  4. Commit Your Changes

    git commit -m "Add amazing feature"
  5. Push to Your Branch

    git push origin feature/amazing-feature

πŸ“š Documentation

For detailed technical information, please refer to our comprehensive documentation:

πŸ—„οΈ Database Documentation

Complete database schema documentation including:

  • Table structures and relationships
  • Row Level Security (RLS) policies
  • Database setup and migration scripts
  • Seeding instructions and sample data

Comprehensive REST API reference covering:

  • Authentication and authorization
  • All endpoint specifications with examples
  • Request/response formats
  • Error handling and status codes
  • Rate limiting and security considerations

πŸ”— See Also

Related Documentation:

Development Resources:


πŸ“ž Support

If you encounter any issues or have questions:


πŸ“– Documentation Navigation

Quick Links:

Key Sections:


Arijit Roy, Ittekhar Mahin Abir, Raheta Sadeka

CSE 464 - App Development Course

East Delta University

Β© 2025 Academia Connect. All rights reserved.

About

A comprehensive social networking platform designed specifically for East Delta University students to connect, share, and collaborate within their academic community.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •