Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/poulastaadas/movie-browsing-app
A Movie Browsing navite android Application build using jetpack compose and custom backend build using ktor (used only for Authentication).
https://github.com/poulastaadas/movie-browsing-app
android compose jetpack-android jetpack-compose jetpack-navigation kotlin kotlin-android ktor ktor-server movie-recommendation-app paging3
Last synced: about 2 months ago
JSON representation
A Movie Browsing navite android Application build using jetpack compose and custom backend build using ktor (used only for Authentication).
- Host: GitHub
- URL: https://github.com/poulastaadas/movie-browsing-app
- Owner: POULASTAAdAS
- License: gpl-3.0
- Created: 2024-10-21T20:36:28.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-11-13T05:45:28.000Z (3 months ago)
- Last Synced: 2024-11-13T06:25:56.022Z (3 months ago)
- Topics: android, compose, jetpack-android, jetpack-compose, jetpack-navigation, kotlin, kotlin-android, ktor, ktor-server, movie-recommendation-app, paging3
- Language: Kotlin
- Homepage:
- Size: 112 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mFlix (Movie-Browsing-App)
> mFlix is a movie browsing navite android application build using jetpack compose and custom backend build using ktor (used only for Authentication) uses [The Movie Database](https://developer.themoviedb.org/reference/intro/getting-started) as data source.
# Features
- Supports Every Screen size
- Authentication using google and email
- A custom library to save your favourite movies and tv shows
- Auto Sync data with custom backend server
- An enhanced search functionality
- upto date and accurate information| **Client** | **Server** |
| --------------- | ---------- |
| Jetpack Compose | Ktor |
| Navigation | Exposed |
| OkHttp | SQL |
| Paging | Session |
| Room | |
| Coil | |
| Palette | |
| WindowSizeClass | |# Preview
### Compact
### Expanded
## Technology
> Client
- [Kotlin](https://kotlinlang.org/) Programing Language
- [Jetpack Compose](https://developer.android.com/jetpack?gad_source=1&gclid=Cj0KCQiA88a5BhDPARIsAFj595jSVle89CMGPqnq6A0C-V8KNDyNR8K_vGQZzUDgCO00VtoKs555fUsaAtXQEALw_wcB&gclsrc=aw.ds) - Ui Library
- [OkHttp](https://square.github.io/okhttp/) - Http Client to make api Request
- [Paging3](https://developer.android.com/topic/libraries/architecture/paging/v3-overview) - A Jetpack compose library to load data as needed
- [Download Manager](https://developer.android.com/reference/kotlin/android/app/DownloadManager) - Efficiantly Download Report as pdf format
- [Room](https://developer.android.com/training/data-storage/room) - SqlLight Database for android
- [Dagger Hilt](https://developer.android.com/training/dependency-injection/hilt-android) - Dependency Management Tool for Android
> Server
- [Ktor](https://ktor.io/) - evented I/O for the Server
- [Exposed](https://ktor.io/docs/server-integrate-database.html) - Server side Sql Database
- [koin](https://insert-koin.io/) - Dependency management tool for server
- [gradle.kt](https://docs.gradle.org/current/userguide/kotlin_dsl.html) - the streaming build system## Installation
1. Clone the repo:
```sh
git clone https://github.com/POULASTAAdAS/Movie-Browsing-App.git
```2. Create A Google Cloud Project on [GCP](https://console.cloud.google.com/projectcreate)
2.1 Add SHA1 certificate of the app. Run this on gradle task```sh
signinReport
```2.2 Create OAuth Creadeintials for android and web [here](https://console.cloud.google.com/apis/credentials)
2.3 Setup environment variables on local.properties file of the android appCreate an account on [The Movie Database Api](https://www.themoviedb.org/u/)
Access the Bearer Api Token from [here](https://www.themoviedb.org/settings/api)> CLIENT_ID=
> BASE_URL=
> API_BASE_URL=https://api.themoviedb.org/3
> API_TOKEN=[YOUR_API_TOKEN](https://www.themoviedb.org/settings/api)
> API_IMAGE_URL=https://image.tmdb.org/t/p/w5003. Setup enveroinment variables for the server project:
> clientId=
> ISSUER=https://accounts.google.com
> sessionEncryptionKey=
> sessionSecretKey=4. Run the docker-compose.yml file on [path](https://github.com/POULASTAAdAS/Movie-Browsing-App/blob/main/mFlexAuth/docker-compose.yml) this will create databsae mFlix and nessery tables for more deatils view [the sql file](https://github.com/POULASTAAdAS/Movie-Browsing-App/blob/main/mFlexAuth/docker/mysql/init.sql)
3.1 Change the emails on [the sql file](https://github.com/POULASTAAdAS/Leave-Management-System/blob/main/LMSServer/mysql/init.sql) before runing docker compose
3.2 See [application.conf](https://github.com/POULASTAAdAS/Leave-Management-System/blob/main/LMSServer/src/main/resources/application.conf) file for setting up the urls and port```sh
docker compose up -d
```> By default the server port is exposed on 8083 and database port on 3310
> and you are good to go# License
```xml
Designed and developed by Poulastaa DasLicensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```