Code Monkey home page Code Monkey logo

chunhthanhde / tms-springboot Goto Github PK

View Code? Open in Web Editor NEW
12.0 1.0 1.0 74.54 MB

The set-top box terminal management system is the university graduation project of student Nguyen Thanh Chung - School of Electrical and Electronics Engineering of Hanoi University of Science and Technology.

License: GNU General Public License v3.0

Java 100.00%
server set-top-box spring-boot andoridtv backend-server chung-nguyen-thanh chunh-thanh-de chunhthanhde manager-system settopbox

tms-springboot's Introduction

TMS - Terminal Management System for AOSP and ATV Set-top Box product lines

The set-top box terminal management system is the University Graduation Project of student Chung Nguyen Thanh - School of Electrical and Electronics Engineering of Hanoi University of Science and Technology.

Show some ❤️ and star ⭐ the repo if you liked it.

contact for work, mail: [email protected]

GitHub stars GitHub forks GitHub watchers

Support me on LinkedIn

Buy Me A Coffee

🚑 This source code is the back end of the TMS Project. For security reasons, I cannot 🙌 publish the application source code of this system. The following link is the source code of the web client interface for TMS Smart Box device managers: https://github.com/ChunhThanhDe/tms-reactjs

🗂️ Overview

Previously, the Set-top box (STB) was known as a device that acted as an intermediary between the signal source and the TV. Its function was to decode television signals and convert them into audio and visual content displayed on the TV screen.

Today, the STB is also known as a Smart Box, which can transform a regular TV into a Smart TV with various entertainment features. These features include television services, movie streaming, gaming, web browsing, and access to social networks (karaoke, online learning, etc.). Additionally, the Smart Box can integrate with other Internet of Things (IoT) devices to create a complete home ecosystem.

For current SMB device providers, deploying, operating, managing, and troubleshooting the devices already in use on the market with millions of products is a resource-intensive task. Resources, both human and technical, are required here.

A large-scale system without a technical management system would require a significant number of technical support personnel while also investing in equipment and training programs for the workforce. However, even with these measures, carrying out tasks through multiple intermediate steps may not achieve maximum efficiency. Therefore, SMB device providers need a comprehensive management system capable of handling most user support tasks through Over-the-Air (OTA) updates. Additionally, the system should collect device information and user device usage data. With this information, the management team can generate reports and statistics to evaluate the performance, efficiency, and quality of the current product, as well as consumer habits. Based on these insights, software updates or hardware solutions can be implemented in the future.

System Model

Using the TMS management system will address the aforementioned requirements automatically, quickly, and accurately. While there are existing TMS systems in the market, they have not been widely adopted for SMB products or specific industries. Due to the aforementioned challenges and my interest in SMB technology, I have chosen this topic for my graduation project, with the aim of building an efficient and user-friendly system.

🌟 Features

The TMS includes the following features:

  • User management (Manage accounts allowed to access the system)
  • Smart box device management (Device parameters, location, usage time,...)
  • Application Management (Manage system applications and user applications)
  • Monitor and track device operating history (Monitor real-time device uptime, application usage history, performance parameters)
  • Manage Operational Policies (Create and deploy operational policies for devices including reboot, automatically download and install applications, uninstall applications, display notifications, warnings, and advertisements, and deploy support after-sales support,...)
If you have any questions, you can contact me via mail: [email protected]

💡 Getting started

A few words before you configure the project according to the instructions below:

Dear programmer

when I wrote this code, only god
and I knew how it worked
Now, only god knows it

Therefore, if you are trying to optimize
this routine and it fails (most surely),
please increase this counter as a
warning for the next person :(

total_hours_wasted_here = 530
 
 
Best regards

ChunhThanhDe
I'm just joking, if you have any questions, feel free to ask me. 👯

📺 Configure Spring Datasource, JPA, App properties

Open src/main/resources/application.properties

  • For PostgreSQL:
spring.datasource.url= jdbc:postgresql://localhost:3306/{name_database}
spring.datasource.username= postgres
spring.datasource.password= password

spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation= true
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.PostgreSQLDialect

# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto= update

# App Properties
TMS.app.jwtSecret=ChunhthanhdeSecretKey
TMS.app.jwtExpirationMs=86400000
  • For MySQL
spring.datasource.url= jdbc:mysql://localhost:3306/{name_database}
spring.datasource.username= root
spring.datasource.password= {root_password}

spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto= update

#if hosting by ubuntu
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# App Properties
TMS.app.jwtSecret=ChunhthanhdeSecretKey
TMS.app.jwtExpirationMs=86400000

🍃 Run Spring Boot application

mvn spring-boot:run

📊 Run following SQL insert statements

INSERT INTO role (name) VALUES('ROLE_USER');
INSERT INTO role (name) VALUES('ROLE_MODERATOR');
INSERT INTO role (name) VALUES('ROLE_ADMIN');

INSERT INTO listdevice(name, location) VALUES('all', 'all');
INSERT INTO listdevice(name, location) VALUES('prototype', 'all');

INSERT INTO user(name, username, password, company, email, contact) VALUES ("MODERATOR","root","$2a$10$icvl6beFqq9A9yL8Th5xGuhaM8dRkAFQOLgLXwJv.6SUX3lqOPWXu","none","none",0);
INSERT INTO role_user(user_id, rule_id) VALUES (1, 1); 
INSERT INTO role_user(user_id, rule_id) VALUES (1, 2); 
INSERT INTO role_user(user_id, rule_id) VALUES (1, 3);

INSERT INTO listdevice_user(device_id, user_id) VALUES("1","1");

⛑️ Moderator account

username: root
password: root

Send a 💝 Thanks to

First of all, I would like to thank the HEC Electronic Technology Center of 🏢 VNPT Technology Company for creating conditions for me to build and develop this topic on the company's SmartBox 3 device. I would also like to thank 💝 Nguyen Vinh Khang for helping me develop the Web client source code for the system and 💝 Le Thu An for working with me to build a Business Analyst for the project. ❤️

tms-springboot's People

Contributors

chunhthanhde avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

thebigrigza

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.