Skip to content
View cswasif's full-sized avatar
  • Bangladesh

Highlights

  • Pro

Organizations

@zks-protocol

Block or report cswasif

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
cswasif/README.md

πŸ‘‹ Hi, I'm Wasif Faisal

GitHub followers Gmail

πŸš€ About Me

A resourceful Python developer specializing in FastAPI development and UnrealIRCd systems, currently pursuing Computer Science at BRAC University. Experienced IRC developer with deep knowledge of UnrealIRCd and custom bot creation, combining network protocol expertise with modern API development. Passionate about cybersecurity, automation, and building production-grade systems with clean, maintainable code.

πŸ› οΈ Tech Stack

tech_stack = {
    "backend": ["Python", "FastAPI", "Flask", "UnrealIRCd"],
    "databases": ["PostgreSQL", "Redis", "Firebase"],
    "tools": ["Git", "Docker", "GitHub Actions"],
    "ai_integration": ["Google Gemini", "LangChain", "LLMs"],
    "security": ["Network Protocols", "Ethical Hacking", "Bot Development"],
    "interests": ["API Design", "System Architecture", "IRC Systems"]
}

🌟 Featured Projects

RoutineZ - Smart Course Scheduling

  • Flask backend with complex scheduling algorithms
  • Redis caching for optimized performance
  • AI-powered schedule optimization using Google Gemini
  • 99.9% production uptime

ConnectAPI - University Integration API

  • Production FastAPI application with clean architecture
  • OAuth2 & SSO integration
  • Redis caching improving response times by 60%
  • Comprehensive error handling and logging

BRACU-RideShare [Ongoing]

  • FastAPI backend with geolocation features
  • Complex route matching algorithms
  • Firebase integration for authentication
  • Real-time ride updates

FacultyRate [Ongoing]

  • Flask API with SQLAlchemy
  • Google Gemini AI integration
  • Privacy-first database design
  • Real-time data updates

πŸ“Š GitHub Stats

Wasif's GitHub stats

πŸ” Research Interests

  • Cybersecurity & Network Security
  • Payment Gateway Fraud Detection
  • Financial Technology Systems

πŸŽ“ Education

  • BS in Computer Science, BRAC University (2022-2026)
  • Perfect GPA: 5.00/5.00 in Higher Secondary

πŸ’Ό Looking For

  • Part-time Backend Development opportunities (20 hours/week)
  • Collaborative learning environments
  • Projects involving Python, FastAPI, and AI integration

🌱 Currently

  • Working on RideShare and FacultyRate projects
  • Exploring payment gateway security
  • Learning advanced system architecture patterns

Let's connect and build something amazing together!

ConnectAPI

A FastAPI-based API service for accessing BRACU (BRAC University) student schedules. This API provides a simplified interface to fetch schedule data from the BRACU Connect portal.

Features

  • Public schedule endpoint
  • Token management and auto-refresh
  • Upstash Redis for token storage and caching
  • Error handling and fallback mechanisms
  • Deployed on Vercel
  • Session-based security for sensitive endpoints: Only users with a valid session can access /enter-tokens and /mytokens. The /raw-schedule endpoint remains public.
  • Token uptime display: The home page shows how long your current token will remain active (if any).

Tech Stack

  • Backend Framework: FastAPI
  • Database: Upstash Redis (Serverless Redis)
  • Deployment: Vercel
  • Runtime: Python 3.7+

Setup

  1. Clone the repository:
git clone https://github.com/cswasif/ConnectAPI.git
cd ConnectAPI
  1. Create a virtual environment and install dependencies:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt
  1. Set up Upstash Redis:
  • Go to Upstash Console
  • Create a new Redis database
  • Copy the connection details
  1. Create a .env file with your configuration:
# Upstash Redis Configuration
REDIS_URL=rediss://default:your-password@willing-husky-43244.upstash.io:6379
  1. Run the server locally:
uvicorn main:app --reload

Deployment

This project is configured for deployment on Vercel:

  1. Fork this repository
  2. Connect your fork to Vercel
  3. Add your environment variables in Vercel:
    • REDIS_URL (from Upstash)
  4. Deploy!

API Endpoints

GET /raw-schedule

Fetches the current schedule using the most recent valid token, or falls back to the latest cached schedule if no valid token is available.

  • No authentication required
  • Returns schedule data in JSON format
  • Uses Upstash Redis for token management and caching
  • How it works:
    • The endpoint always tries to fetch the latest real schedule from the Connect API using the most recent valid token.
    • If the live API call is successful, it updates the cache and returns the fresh data.
    • If the live API call fails (e.g., network error, token expired), it falls back to the most recently cached schedule (if available).
    • If no valid token is available at all, it will show the most recently cached schedule (from any student) if present.
    • If neither a valid token nor any cached schedule exists, an error is returned.
  • Everyone sees the same scheduleβ€”it is not user-specific.

GET/POST /enter-tokens

Allows users to enter and save their access and refresh tokens.

  • Requires a valid session (users must start from the home page to get a session)
  • Tokens are stored securely in Redis, scoped to the session
  • Not accessible to the public without a session

GET /mytokens

View the tokens associated with the current session.

  • Requires a valid session
  • Not accessible to the public without a session

Live API URLs & Usage

How to Use

  • Visit https://connapi.vercel.app/raw-schedule in your browser or use it in your application to fetch the latest available schedule data.
  • If a valid token has been submitted (via the web UI at /enter-tokens), the endpoint will show the latest real schedule from the BRACU Connect API.
  • If no valid token is available, it will show the most recently cached schedule (if any exists).
  • The endpoint returns data in JSON format and is publicβ€”no authentication is required.
  • The home page also displays the remaining active time (uptime) of your current token, if available.

Dependencies

  • Python 3.7+
  • FastAPI
  • Upstash Redis
  • httpx
  • python-jose[cryptography]

Infrastructure

Upstash Redis

We use Upstash Redis as our primary database for:

  • Token storage and management
  • Schedule data caching
  • Session handling

Benefits of using Upstash:

  • Serverless Redis solution
  • Global data replication
  • Pay-per-use pricing
  • Built-in REST API

Vercel

Our deployment platform offering:

  • Serverless Functions
  • Automatic deployments
  • Edge Network
  • Zero configuration

Credits & Purpose

This API server was developed by Wasif Faisal to support Routinez and other BRACU student tools.

License

MIT License

Popular repositories Loading

  1. cvv-security-research cvv-security-research Public

    1

  2. ZKS-Meet ZKS-Meet Public

    ZKS Protocol Meet - Edge Hive Tauri 2.0 Android Application with libp2p P2P discovery

    HTML 1

  3. chatbot chatbot Public

  4. smart.routine smart.routine Public

    JavaScript

  5. RoutineZ RoutineZ Public

    Python

  6. FacultyRate FacultyRate Public

    A private, AI-powered faculty rating system

    Python