Projects:

Some open source practise programmming projects:

Projects Summary
Projects Categories Project Names Tech Stack
Distributed Systems Clock Synchronization (Berkeley Algorithm) and Multicast Ordering (FIFO, Causal). C++.
A Centralized Multi-User Concurrent Bank Account Manager (Multithreading, Synchronization, Mutex). C++.
A GoLang multithreaded (goroutine, concurrency) applications to distributedly and concurently compute the average of the integers stored in a file. Go.
A distributed system with load balancer. Java.
Computer Architecture Design your ISA and Hardwares; Test using Quartus (ModelSim). SystemVerilog.
Improve the performance from architecture perspective for 2 stock-price-prediction programs. Python, C++.
Full Stack Pokemon Go Web Game. Apache, MariaDB, PHP, JavaScript/HTML/CSS.
Tasks List Management. JavaScript/HTML/CSS.
Hardware, Sensor, WSN Wireless Sensor Network: RSSI-based Localication for WSN nodes TinyOS, MEMSIC Smart Dust, Mote, IRIS, Crossbow, JAVA, nesC.




Distributed System: Clock Synchronization and Multicast Ordering

Key Words: Distributed System, Multicast Socket Programming, Multicat Ordering, FIFO Ordering, Causal Ordering, Clock Synchronization, Berkeley Algorithem,

Tech Stack: Linux/Ubuntu, C++11, POSIX, Multicast Socket Programming, Peer-to-peer Socket Programming

Implemented the FIFO ordering and Causal Ordering using multicast socket programming for the multicast ordering of DS. GitHub, Video 1 of 2, 2 of 2.

Implemented the Berkeley algorithm using peer-to-peer socket programming for the clock synchronization of DS. Github, Video.




Distributed System: A Centralized Multi-User Concurrent Bank Account Manager (Multithreading, Synchronization, Mutex)

Key Words: Distributed System, Concurrent, Multithreads, Synchronization, Critial Section

Tech Stack: Linux/Ubuntu, C++11, POSIX

A centralized multi-user bank account management system. It supports one server and multtiple clients. The server creates a seperate thread for each client. Synchronization is ensured by add mutex lock for each account. Did scalability experiments and analysis.




Distributed System: A GoLang multithreaded (goroutine, concurrency) applications to distributedly and concurently compute the average of the integers stored in a file

Key Words: Distributed System, Concurrent, Multithreads, Go routine

Tech Stack: Go, goroutine, go channel, go test

Go avg ints




Advanced Operating System: A distributed system with load balancer

Key Words: Distributed System, Load Balancer, Byzantine Fault Tolerance

Tech Stack: Linux/Ubuntu, Tomcat, Axis, MySQL, JAVA, Eclipse

Project 1: Socket. Create a new thread for each client connection. (Python)

Project 2: Design a distributed system including load balancer, Byzantine Fault Tolerance. (Java)



Computer Architecture: Design your ISA and Hardwares; Test using Quartus (ModelSim)

Key Words: ISA, Hardware, Processor, Datapath, Control Signals, MIPS, ARM, x86, RISC

Tech Stack: ISA Design, Processor Design, Datapath and Control Signals Design, Assembly Language, SystemVerilog, Quartus (ModelSim)

Design an instruction set and overall architecture (ISA) for a special-purpose reduced instruction set (RISC) processor. Design the hardware for the processor core. Implement these hardwares using SystemVerilog. Test the ISA and the program in Quartus (ModelSim).





Advanced Computer Architecture: Improve the performance from architecture perspective for 2 stock-price-prediction programs
Phase 1: Pre-process stock price data; Use KNN and linear regression to predict stock price.
Phase 2: Optimize the performance by Floating Point Squaring, Cache Resizing and Branch Prediction. Report here.



Tasks List Management

Key Words: Frontend, Webpage application

Tech Stack: HTML, CSS, JavaScript, LocalStorage, Web APIs, JS Doc

A tasks list management application. User can create, delete, sort tasks, and add date, mark as important, check/uncheck for each task.

Tasks List GIF



Full Stack: Pokemon Go Web Game

A pokemon go web game. Gamers can capture, train pokemon sprites and fight against other polemon sprites.

Key words: Webpage game, Full Stack, Backend, Frontend, Database

Tech Stack:
Server: Apache inside XAMPP
Backend Development Language: PHP
Frontend Development Language: HTML, CSS, JavaScript
Database: MariaDB (similar to MySQL)




Wireless Sensor Network: RSSI-based Localication for WSN nodes

Key words: WSN, Localization, GPS, RSSI, Mote, Hardware

Tech Stack: Fedora/Ubuntu, TinyOS, MEMSIC Smart Dust, Mote, IRIS, Crossbow, JAVA, nesC

Use RSSI to locate sensors. All sensor nodes broadcast signals. One node receives their signals and sends the RSSI information to PC via serial port. PC uses thies RSSI information to locate other sensor nodes.