Skip to content

NaxonM/Academic-Projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

31 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ‡ฉ๐Ÿ‡ช Fรผr die deutsche Version dieses Projekts, siehe README_de.md.

๐ŸŽ“ Academic Projects

Welcome to my collection of university coursework, coding exercises, and personal practice projects. These were developed throughout my undergraduate studies to build hands-on experience in areas like:

  • Systems programming
  • Desktop application development
  • Networking and low-level logic
  • Cryptographic techniques and secure coding

โš ๏ธ Disclaimer: Many of these projects were developed under time constraints or as part of academic assignments. As such, some may contain incomplete features, inefficient logic, or bugs. They are shared here for educational purposes only.


โ™ป๏ธ Project 1: Smart Trash Bin Monitoring System (Arduino + ESP8266)

๐Ÿ“Œ Description

A real-world IoT project designed to monitor trash bin fill levels, weight, and environmental hazards (like gas or flame), then transmit the data to a cloud MQTT server (HiveMQ). This project explores sensor networks, embedded programming, and cloud-based communication.

The current version uses a two-board architecture:

  • Arduino Uno reads sensors (ultrasonic, flame, MQ2 gas, load cell) and sends data via JSON over serial.
  • NodeMCU ESP8266 receives the data, connects to Wi-Fi, and publishes to an MQTT topic.

๐Ÿ” Features

  • Ultrasonic sensor for bin fill level
  • Load cell + HX711 for weight measurement
  • Gas and flame detection (MQ2 + IR)
  • JSON-formatted serial communication
  • MQTT publishing via NodeMCU + PubSubClient

๐Ÿ“ Structure

SmartBin/
โ”œโ”€โ”€ smartbin_sensor_uno.ino       # Sensor logic (Arduino Uno)
โ”œโ”€โ”€ smartbin_gateway_nodemcu.ino  # MQTT logic (NodeMCU)
โ””โ”€โ”€ project_notes.txt             # Design overview and future plans

๐Ÿง  Key Concepts

  • Embedded system communication
  • Sensor data aggregation and formatting
  • Serial protocols between microcontrollers
  • Wi-Fi and MQTT integration in IoT
  • Lightweight JSON handling with ArduinoJson

๐Ÿ“ˆ Future Roadmap

A second version is in development to consolidate all functionality into a single NodeMCU board. Planned upgrades include:

  • OLED display for live status
  • Multiplexer-controlled LED indicators
  • Calibration and restart buttons
  • Audio alerts via buzzer
  • More efficient GPIO and power management

๐Ÿง  Project 2: Per-Core CPU Usage Monitor (PerC5.py)

๐Ÿ“Œ Description

A low-level Linux CPU monitor written in pure Python. It reads directly from the /proc filesystem to compute real-time CPU usage per core โ€” like a simplified top or htop, implemented from scratch.

๐Ÿ” Features

  • Monitors each core individually
  • Parses /proc/<pid>/stat for process CPU time
  • Aggregates usage by CPU core
  • Pure Python, no external libraries

๐Ÿš€ Usage

python3 PerC5.py <wait_time_in_seconds>

๐ŸŽฎ Project 3: Snake Game (Java)

๐Ÿ“Œ Description

A graphical Snake game implemented in Java Swing with multiple levels and image-based assets. Created to explore GUI programming, game loops, and event handling in Java.

โš ๏ธ Note: This version is a work-in-progress and may contain bugs or incomplete features.

๐Ÿ” Features

  • Level system with multiple custom maps
  • Menu UI with level selection
  • Image assets for snake, apples, and obstacles
  • Keyboard input handling

๐Ÿ“ Structure

SnakeGame/
โ”œโ”€โ”€ doc/                  # Documentation and report
โ”œโ”€โ”€ nbproject/Snake/      # NetBeans project setup
โ”œโ”€โ”€ src/                  # Java classes and image resources

๐Ÿจ Project 4: Hotel Management System (JavaFX + MySQL)

๐Ÿ“Œ Description

A Hotel Management System developed as part of my university coursework, using JavaFX for the GUI and MySQL for data persistence. The project was built to practice object-oriented design, JavaFX development, and relational database modeling.

It provides a basic simulation of a hotelโ€™s operations, including booking, guest registration, room and service management, and analytical queries for business insights.

โš ๏ธ Note: The project is incomplete and was created primarily for educational purposes. Some features are still under development or use placeholder logic (e.g., hardcoded login credentials).


๐Ÿ” Features

  • JavaFX-based UI with multiple tabs and data views
  • Login screen (basic session simulation)
  • Guest, hotel, room, and service management (CRUD operations)
  • Booking system with check-in/check-out tracking
  • Analytical features, such as:
    • Most profitable guests
    • Most frequently used rooms, hotels, and services
    • Most profitable cities
    • Hotels not visited by a guest in a specific city

๐Ÿงฉ Technologies Used

  • Java 8+
  • JavaFX (FXML + SceneBuilder)
  • MySQL (via JDBC)
  • SQL-based reporting

๐Ÿ“ Structure

HMS-Real/
โ”œโ”€โ”€ docs/            # Schema diagrams and documentation
โ”œโ”€โ”€ resources/       # FXML UI files (JavaFX)
โ”œโ”€โ”€ src/sample/      # Java classes (controllers, models)
โ”œโ”€โ”€ sql/             # Schema creation, insert scripts, and analysis queries

๐Ÿ—ƒ๏ธ Database Design

The system uses a normalized relational schema, with separate tables for:

  • Hotels, guests, rooms, services
  • Bookings and service usage
  • Addresses (linked to both hotels and guests)
  • Room types and invoices

๐Ÿ“Œ See docs/schemaV3.png for the full ER diagram.
๐Ÿ“„ SQL scripts for schema creation and queries are included under sql/.


๐Ÿงฎ Project 5: x86 Assembly Examples (AssemblyProjects/)

๐Ÿ“Œ Description

A small collection of x86 Assembly programs using NASM for Linux. These examples demonstrate bit-level operations, loops, conditionals, and working with registers.

โš ๏ธ Educational only โ€” not optimized or structured for production.

๐Ÿ“„ Notable Files

  • 64bit_Addition.asm โ€” Adds two 64-bit integers using 32-bit registers
  • Perfect_Numbers.asm โ€” Finds perfect numbers from 1 to 1000
  • AgeCalculator.asm โ€” Moved to next project (MIPS variant)

๐Ÿ›  Requirements

  • NASM assembler
  • Linux (32-bit support)
  • asm_io.inc for I/O

๐Ÿ“ Project 6: Age Calculator in MIPS Assembly (AgeCalculator.asm)

๐Ÿ“Œ Description

A MIPS Assembly implementation of an age calculator based on input birth date and current date. Built using the MARS 4.5 IDE and translated from an earlier Java version.

๐Ÿง  Concepts Explored

  • User interaction with MIPS syscalls
  • Conditional logic and branching
  • Working with .data and .text memory segments
  • Manual date calculations

๐Ÿ“„ Files

  • AgeCalculator.asm โ€” Source code
  • ฺฏุฒุงุฑุด ฺฉุงุฑ.pdf โ€” Persian-language report with breakdown

๐Ÿ Project 7: Python Cryptography & Programming Exercises (PythonCryptoExercises/)

๐Ÿ“Œ Description

A set of beginner-to-intermediate Python scripts exploring basic logic and cryptographic attacks. Includes experiments with brute-force search, bit manipulation, and attack simulations.

๐Ÿ“„ Key Files

File Name Purpose
ManualStringReversal.py Reverses strings manually
IndexBasedSwap.py Swaps list elements
DESBruteForceParallel.py Brute-forces DES keys using multithreading
BitFlipBase64Attack.py Demonstrates bit-flipping attacks on Base64-encoded ciphertext

๐Ÿ›  Requirements

pip install pycryptodome

Feel free to explore any project folder. Feedback and suggestions are always welcome!

About

My programming projects from college

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors