This is my first Spring Boot with Kotlin project and used React as frontend.

Related tags

App course-hub
Overview

༒☬༒ ꜱᴘʀɪɴɢ ʙᴏᴏᴛ + ᴋᴏᴛʟɪɴ ༒☬༒

This project is simple course enrolment site built with React with Typescript and Spring boot with Kotlin.

Frontend - Overview 🌐

The idea of the project is inspired from our course enrolment site https://lms.uom.lk/ where student can see the available courses and select the courses that they want to enrol. After that admin can see the enrolled student and take necessary actions. Firstly the student can all available courses as Follows.

image info

If they click on enrol button they will be redirected to the login page. Otherwise, they have to sign up. After successfully sign up or log in, they can click the enrol button. There is a type of role called Admin. The admin is created when the database data is propagated. Admin can use the same log-in button as student. The admin cannot enrol to the system instead they can view the students who enrolled to the course.

image info image info

An admin can change the course details as well as he can delete the course.

Frontend - Technologies 🛠

I used React as the frontend development technology as React with Typescript. This way I was able to get the help from VSCode intellisense to maximize my coding productivity.

Backend - Overview 🔙

The backend is implemented using Spring Boot. Since there are authentication is required I used Spring security. Some endpoints are secured but others are not. There are two type of roles named ADMIN and STUDENT. There are some endpoints which is only accessible for ADMIN. I implemented an annotation called AdminPermission.

@Inherited
@PreAuthorize("hasAuthority(T(lk.uom.itfac.panduka18.coursehub.constant.Role).ADMIN)")
annotation class AdminPermission

If we apply this into a controller method as follows we can filter only admin requests.

@DeleteMapping("/{courseId}")
@AdminPermission
fun deleteCourse(@PathVariable courseId: UUID, @CurrentUser userPrincipal: UserPrincipal?) {
    courseService.delete(courseId)
}

Backend - Technologies

Since I already have a very good experience in Spring Boot as I created microservice based Spring Boot server in Second year project, this time I wanted to make this server different. I used Kotlin as programming language for the Spring boot server. Kotlin is designed to interoperate fully with Java and JVM. Therefore, anything we write using Java can convert to Kotlin and vise versa. The advantage is that I was able to decrease huge boilerplate codes such as getters and setters by using Kotlin.

Deployment 🐳

Since the frontend is built with React and the backend is built with Spring Boot the frontend and the backend have to be bunndled together for that I used frontend-maven-plugin and maven-resources-plugin to put react build file into Spring boot JAR file.

Credentials

Username and password for admin is as follows.

  • username: admin
  • password: admin Please use the Mysql DUMP file to restore the Admin credentials if you are use this for the first time.
You might also like...
Make your first Pull Request on Hacktoberfest 2022. Don't forget to spread love and if you like give us a ⭐️

This Repo is Excluded 🎃 HacktoberFest Starter Project 🎃 Use this project to make your first contribution to an open source project on GitHub. Practi

Build your first Android app - a tip calculator!
Build your first Android app - a tip calculator!

Tippy - A Simple Tip Calculator for Android Build Tippy as your first Android app! Follow the YouTube walkthrough video Author: Rahul Pandey Features:

This service provides first-class custom ROM integration for my Repainter app, which offers customizable dynamic theming for Android 12.

Repainter ROM integration This service provides first-class custom ROM integration for my Repainter app, which offers customizable dynamic theming for

Parsing and re-packing Android boot.img/vbmeta.img, supporting Android 12(preview)
Parsing and re-packing Android boot.img/vbmeta.img, supporting Android 12(preview)

Android_boot_image_editor A tool for reverse engineering Android ROM images. Getting Started install required packages Mac: brew install lz4 xz dtc Li

An android app will start when boot and exit after 1s. Develop for Redmi K40 to enable DC dimming automatically.
An android app will start when boot and exit after 1s. Develop for Redmi K40 to enable DC dimming automatically.

An android app will start when boot and exit after 1s. Develop for Redmi K40 to enable DC dimming automatically.

Kotlin/JS를 이용하여 Kotlin으로 React 프로그래밍하기!
Kotlin/JS를 이용하여 Kotlin으로 React 프로그래밍하기!

코틀린으로 리액트 프로그래밍하기! 코틀린으로 리액트 프로그래밍하기 - 블로그 코틀린으로 리액트 프로그래밍을 하시기 전에 수신 객체 지정 람다와 프로퍼티 위임(by)에 대해서 미리 선행하시는 걸 추천드립니다. 컴포넌트 생성하기 @JsExport class TestComp

Initiate immediate phone call for React Native on iOS and Android.

react-native-immediate-call-library Initiate immediate phone call for React Native on iOS and Android. Getting started Using npm: npm install react-na

A 2020s compatible React Native keyboard avoiding view for Android and iOS that just works.

react-native-keyboard-shift Example Snack coming soon Until then: Clone this repo: git clone https://github.com/FullStackCraft/react-native-keyboard-s

NativeScript empowers you to access native platform APIs from JavaScript directly. Angular, Capacitor, Ionic, React, Svelte, Vue and you name it compatible.
NativeScript empowers you to access native platform APIs from JavaScript directly. Angular, Capacitor, Ionic, React, Svelte, Vue and you name it compatible.

NativeScript empowers you to access native APIs from JavaScript directly. The framework currently provides iOS and Android runtimes for rich mobile de

Owner
Panduka Nandara
Developer | Undergraduate at University of Moratuwa, 🇱🇰
Panduka Nandara
An E-Commerce android App whose frontend is implemented using Kotlin & XML files and backend/database is implemented using My SQL & PHP files

An E-Commerce android App whose frontend is implemented using Kotlin & XML files and backend/database is implemented using My SQL & PHP files

null 4 Aug 25, 2022
Simple Aircraft War on Android (frontend of SAWS)

SAWA: Simple Aircraft War on Android SAWA(Simple Aircraft War on Android,简易 Android 飞机大战游戏)是一款 Java 开发的 Android 平台的「飞机大战」主题小游戏。 支持单人游戏、多人同屏游戏两种游戏模式。 S

Hans Wan 4 Jun 13, 2022
📲💬 react-native-fontext is a lightweight library to integrate fonts in your React Native application that works seamlessly in android and iOS devices.

React Native Fontext react-native-fontext is a lightweight library to integrate fonts in your React Native application that works seamlessly in androi

mroads 9 Dec 3, 2021
React-native-user-interface - Change React Native userinterface at runtime

react-native-user-interface change RN userinterface at runtime. Installation npm

Ahmed Eid 0 Jan 11, 2022
Kotlin Spring Boot on GCP App Engine Standard

Kotlin Spring Boot on GCP App Engine Standard Deploy locally git clone https://github.com/mvladoi/sinch-task.git cd springboot mvn spring-boot:run 7

Vladoi Marian 0 Nov 29, 2021
Civihelper-project - This is our first android project .

Civihelper-project Problem-- Time taking and cumbersome conventional way to submit your civil problems. Proposed soln--- A platform to provide the sub

Kunal Kumar 1 Jun 6, 2022
This is a first kotlin project

SmallPocket This is a first kotlin app, help user to save links easily, and can export to Evernote as weekly. Steps: copy link anywhere open SmallPock

KotlinChina 31 Dec 17, 2022
This is the first goland plugin for SCA of Go. It focuses on the dependency security of the Go project.

This is the first goland plugin for SCA of Go. It focuses on the dependency security of the Go project. It will generate the SCA report for the dependencies with vulnerabilities. For the detailed introduction of this plugin, please refer to this article.

Neal Caffery 13 Sep 3, 2022
A Task Management and Habit-building App, representating my journey in Android as well as my first Kotlin App. 🤗 ✨

A Task Management and Habit-building App, representating my journey in Android as well as my first Kotlin App. ?? ✨

Sarthak Musmade 8 May 8, 2022
My attempt at completing Advent of Code for the first time, might also learn Kotlin while doing so.

AdventOfCode2021 Welcome to the Advent of Code1 Kotlin project created by debskipawel using the Advent of Code Kotlin Template delivered by JetBrains.

Paweł Dębski 1 Dec 8, 2021