University of Kurdistan - Internet Engineering

References and sample project for Internet Engineering course in University of Kurdistan.

Layer 4 - Socket Programming (TCP/UDP)

Tools

  • netcat (often abbreviated to nc) is a computer networking utility for reading from and writing to network connections using TCP or UDP.

Presentation

Other References

Layer 7 - HTTP

Hypertext Transfer Protocol (HTTP) is an application-layer protocol for transmitting hypermedia documents, such as HTML. It was designed for communication between web browsers and web servers, but it can also be used for other purposes. (from Mozilla)

Tools

  • Apache2
  • NGINX
  • Microsoft IIS
  • Express.js

Presentation

Project

Source Control & DevOps

Tools

References

Final Project

Web

Create a todo-list management web-application with following features:

  • Create ( create new item )
  • Read ( show a list of created items )
  • Update ( click checkbox and save done/undone state )
  • Delete ( delete todo item )
  • Search ( search a word in list items )
  • Filter ( show only done items / show all items )

These concepts should be used in your project:

  • Frontend / API / Backend ( todo data should be saved on server and front-end should access them using API )
  • Ajax / SinglePage front-end
  • Git + GitHub
  • Good documentation on README.md file

Optional features: (implement following features if you want more score)

  • Implement an authentication mechanism which each user has own account and can login and manage his records on multiple devices
  • Use frameworks like vue.js, angular, react, etc...
  • Database or File ( todo data should be stored permanently, nothing should be cleared after restarting server & client )

Socket

  • Checkpoint 1: Single Client Chat (You got it!)
    • Inputs from server console should be printed on client console
    • Inputs from client console should be printed on server console
  • Checkpoint 2: Multi-User Chat (You’re a great student)
    • First take own username from user
    • Then take target username
    • Create a dictionary of username → connection on server
    • Users should be able to start a bi-directional chat together
  • Checkpoint 3: Users list (You’re a pro programmer!)
    • Create a specific request which returns list of online usernames
    • Create a UI to show users list and start a chat after clicking on a username

Results

Other References

TODO

  • Migrade front-end of web-programming project to a web framework (Angular, Vue, React)
  • Add photo sending feature to web-programming project
  • Use websocket instead of http for web-programming project
  • Add todo list definition to readme