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

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.

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.