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 as data source.
- 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 |
![Auth Preview](https://github.com/POULASTAAdAS/Movie-Browsing-App/raw/main/ss/mobile/auth_mFlix.gif)
![Compact Home](https://github.com/POULASTAAdAS/Movie-Browsing-App/raw/main/ss/mobile/compact_home.gif)
![Compact Search](https://github.com/POULASTAAdAS/Movie-Browsing-App/raw/main/ss/mobile/compact_search.gif)
![Compact Profile](https://github.com/POULASTAAdAS/Movie-Browsing-App/raw/main/ss/mobile/compact_profile.gif)
![Tab Home](https://github.com/POULASTAAdAS/Movie-Browsing-App/raw/main/ss/tab/tab_home.gif)
![Tab Search](https://github.com/POULASTAAdAS/Movie-Browsing-App/raw/main/ss/tab/tab_search.gif)
Client
- Kotlin Programing Language
- Jetpack Compose - Ui Library
- OkHttp - Http Client to make api Request
- Paging3 - A Jetpack compose library to load data as needed
- Download Manager - Efficiantly Download Report as pdf format
- Room - SqlLight Database for android
- Dagger Hilt - Dependency Management Tool for Android
Server
- Ktor - evented I/O for the Server
- Exposed - Server side Sql Database
- koin - Dependency management tool for server
- gradle.kt - the streaming build system
- Clone the repo:
git clone https://github.com/POULASTAAdAS/Movie-Browsing-App.git
- Create A Google Cloud Project on GCP 2.1 Add SHA1 certificate of the app. Run this on gradle task
signinReport
2.2 Create OAuth Creadeintials for android and web here 2.3 Setup environment variables on local.properties file of the android app
Create an account on The Movie Database Api Access the Bearer Api Token from here
CLIENT_ID= BASE_URL= API_BASE_URL=https://api.themoviedb.org/3 API_TOKEN=YOUR_API_TOKEN API_IMAGE_URL=https://image.tmdb.org/t/p/w500
-
Setup enveroinment variables for the server project:
clientId= ISSUER=https://accounts.google.com sessionEncryptionKey= sessionSecretKey=
-
Run the docker-compose.yml file on path this will create databsae mFlix and nessery tables for more deatils view the sql file 3.1 Change the emails on the sql file before runing docker compose 3.2 See application.conf file for setting up the urls and port
docker compose up -d
By default the server port is exposed on 8083 and database port on 3310 and you are good to go
Designed and developed by Poulastaa Das
Licensed 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 at
http://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.