Skip to content

Commit

Permalink
Project done !
Browse files Browse the repository at this point in the history
  • Loading branch information
obrymec committed Jun 10, 2024
1 parent 4f842b8 commit 0f39a04
Show file tree
Hide file tree
Showing 86 changed files with 3,748 additions and 3 deletions.
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
local.properties
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions .idea/.name

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 23 additions & 0 deletions .idea/deploymentTargetDropDown.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 19 additions & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions .idea/migrations.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
60 changes: 60 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Number Plate Scanner
![Plate Number Detection](https://img.shields.io/badge/plate%20number%20detection-290064.svg?style=for-the-badge)
![Number Plate Provider](https://img.shields.io/badge/number%20plate%20provider-6200ee?style=for-the-badge)
![Number Plate Scanner](https://img.shields.io/badge/number%20plate%20scanner-9654f4?style=for-the-badge)
![Mobile Application](https://img.shields.io/badge/mobile%20application-efe6fd?style=for-the-badge)

Number Plate Scanner has been made to take a capture of a car with his
plate number from device native camera and send it to remote back-end
server for his identification. This mobile application has been built
to make a quick presentation of automobile number plate detection
software.

## Table of contents
1. [Access links](#links)
2. [Reference](#ref)
3. [Final result](#result)
4. [Project installation](#install)
5. [Sources code cloning](#cloning)

## Access links <a id = "links"></a>
The project distribution version can be accessible through the link below :
- https://gitlab.com/obrymec/number_plate_scanner/-/blob/master/dist/numberplate_scanner_v0.1.4b10.apk?ref_type=heads

## Reference <a id = "ref"></a>
The project can be found via the link below :
- https://github.com/obrymec/number_plate_scanner

## Final result <a id = "result"></a>
This is the final result of the project :<br/><br/>
![First render](./render/render_1.jpg)
![Second render](./render/render_2.jpg)

## Project installation <a id = "install"></a>
To be able to run this project in development
mode, you will need to install <i>
<a href = "https://developer.android.com">Android Studio</a></i>.
Download it and then decompress the downloaded zip file into
a folder called <b><i>soft</i></b> inside <b><i>home</i></b>
folder like that : <b><i>/home/soft/android_studio</i></b>.
Before start installation, run the following commands :
```sh
sudo apt-get -y install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386;\
sudo apt-get -y install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils;\
sudo adduser `id -un` libvirt;\
sudo adduser `id -un` kvm;\
virsh list --all
```
Now, you can install Android Studio. After installation, don't
forget to install <i>cmdline-tools</i> and <i>latest API levels</i>
from SDK manager before restart Android Studio. For more information,
you can visit the following links below :
- https://help.ubuntu.com/community/KVM/Installation
- https://developer.android.com/studio/install

## Sources code cloning <a id = "cloning"></a>
```sh
git clone [email protected]:obrymec/number_plate_scanner.git number_plate_scanner/
```

Enjoy :)
1 change: 1 addition & 0 deletions app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
68 changes: 68 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
plugins {
alias(libs.plugins.androidApplication)
alias(libs.plugins.jetbrainsKotlinAndroid)
}

android {
namespace = "org.cacybernet.numberplatescanner"
compileSdk = 34
defaultConfig {
applicationId = "org.cacybernet.numberplatescanner"
minSdk = 26
targetSdk = 34
versionCode = 1
versionName = "0.1.4"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.1"
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}

dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.material3)
implementation(libs.androidx.appcompat)
implementation(libs.material)
implementation(libs.androidx.activity)
implementation(libs.androidx.constraintlayout)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.ui.test.junit4)
debugImplementation(libs.androidx.ui.tooling)
debugImplementation(libs.androidx.ui.test.manifest)
//noinspection UseTomlInstead
implementation("com.squareup.okhttp:okhttp:2.7.0")
}
Binary file added app/numberplatescanner.jks
Binary file not shown.
21 changes: 21 additions & 0 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
58 changes: 58 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
<?xml version = "1.0" encoding = "utf-8"?>
<manifest
xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:tools = "http://schemas.android.com/tools"
>
<!--Permissions-->
<uses-feature android:name = "android.hardware.camera" android:required = "false"/>
<uses-permission android:name = "android.permission.INTERNET"/>
<uses-permission android:name = "android.permission.CAMERA"/>
<uses-permission
android:name = "android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore = "ScopedStorage"
/>
<!--Numberplate Scanner-->
<application
android:theme = "@style/Theme.NumberplateScanner"
android:roundIcon = "@mipmap/launcher_round"
android:label = "@string/app_name"
android:icon = "@mipmap/launcher"
android:allowBackup = "true"
android:supportsRtl = "true"
tools:targetApi = "31"
>
<!--Main screen-->
<activity
tools:ignore = "DiscouragedApi,LockedOrientationActivity"
android:theme = "@style/Theme.NumberplateScanner"
android:name = ".presentation.MainScreen"
android:screenOrientation = "portrait"
android:exported = "false"
/>
<!--Splash screen-->
<activity
tools:ignore = "DiscouragedApi,LockedOrientationActivity"
android:theme = "@style/Theme.NumberplateScanner"
android:screenOrientation = "portrait"
android:name = ".SplashScreen"
android:exported = "true"
>
<intent-filter>
<action android:name = "android.intent.action.MAIN"/>
<category android:name = "android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!--File provider configurations-->
<provider
android:authorities = "org.cacybernet.numberplatescanner.fileprovider"
android:name = "androidx.core.content.FileProvider"
android:grantUriPermissions = "true"
android:exported = "false"
>
<meta-data
android:name = "android.support.FILE_PROVIDER_PATHS"
android:resource = "@xml/file_paths"
/>
</provider>
</application>
</manifest>
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
/*
* @project: Numberplate Scanner - https://gitlab.com/obrymec/number_plate_scanner
* @author: Obrymec - [email protected]
* @fileoverview: The startup screen.
* @file: SplashScreen.java
* @created: 2024-04-27
* @updated: 2024-05-11
* @supported: ANDROID
* @version: 0.0.2
*/

/// Package name.
package org.cacybernet.numberplatescanner;

/// Android dependencies.
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Handler;
import android.os.Bundle;

/// Custom dependencies.
import org.cacybernet.numberplatescanner.presentation.MainScreen;
import org.cacybernet.numberplatescanner.utils.System;

/**
* The application splash screen for the first startup.
*/
@SuppressLint("CustomSplashScreen")
@SuppressWarnings("unused")
public class SplashScreen extends AppCompatActivity {
/**
* Called when this activity is loaded and ready to use.
* @param savedInstanceState The saved instance state.
*/
@Override
protected void onCreate (Bundle savedInstanceState) {
// Calls his parent method.
super.onCreate(savedInstanceState);
// Binds the xml file to this java class.
this.setContentView(R.layout.splash_screen);
// Changes native status bars color.
System.getInstance().setBarsColor(R.color.primary_900, this);
// Waits for (03) seconds before go to dashboard.
new Handler().postDelayed(() -> {
// Go to dashboard.
this.startActivity(new Intent(this, MainScreen.class));
// Destroys splash screen.
this.finish();
// After (03) seconds.
}, 3000);
}
}
Loading

0 comments on commit 0f39a04

Please sign in to comment.