English

Belay - A Slack Clone

Belay is a capstone project for the Web Development course, demonstrating the integration of modern front-end and back-end techniques. The application replicates essential Slack functionality, offering real-time chat capabilities within channels. It focuses on robust design, responsive interfaces, and efficient database-backed operations.

Directory Overview

  • /frontend - Contains JavaScript and CSS files for the single-page application's user interface.
  • /backend - Includes Flask routes, database migrations, and API endpoints.
  • /database - SQLite database schema and migrations.
  • /static - Static assets such as images and icons.

Key Features

Real-Time Messaging

Users can:

  1. Create and join channels with unique names.
  2. Send and receive messages in real time, organized by channels.
  3. Reply to specific messages using threads, with visual indicators showing reply counts.

Authentication and User Management

  1. Users can sign up, log in, and log out securely.
  2. Authenticated users can manage their profiles, including username and password changes.
  3. Auth tokens are stored in localStorage for persistent sessions.

Dynamic UI/UX

  1. Wide Screens:
    • Multi-column layout for channel navigation, messages, and threads.
    • Channel highlights and hover effects enhance navigation.
  2. Narrow Screens:
    • Single-column layout with a responsive menu bar.
    • Context-based views for channels and threads.

Database Integration

  • SQLite3 powers the back-end data management.
  • Tables for users, channels, messages, replies, and reactions.
  • Threaded messages and user-read statuses are efficiently managed through relational data.

RESTful API

  1. Authentication via session tokens.
  2. Endpoints for creating channels, posting messages, and fetching unread message counts.
  3. Efficient data fetching with parameterized queries.
Belay User Interface Mockup

See the complete source code of Belay Project


Challenges and Learnings

  1. Efficient Real-Time Updates:
    Implementing real-time polling for message and unread counts without overloading the server was a significant achievement.
  2. Thread Management:
    Designing a database schema to support threaded messages while maintaining simplicity required careful planning.
  3. Responsive Design:
    Balancing functionality across different screen sizes highlighted the importance of adaptive layouts in modern web applications.

Belay showcases my ability to design and implement a fully functional single-page application with modern web technologies, making it a cornerstone of my portfolio.

0
0
0
0