This codebase was created to demonstrate a fully fledged fullstack application built with Kotlin + Ktor + Koin + MongoDb including CRUD operations, authentication, routing, and more. The main purpose of this server will be to provide the data to my Android Application - Intern.
I've gone to great lengths to adhere to the Kotlin + Ktor community styleguides & best practices.
What I'm trying to Do ?
- Android UI Design (Checkout -> Figma Designs)
- API & Database (Checkout -> Intern-Backend)
- Web Scraper (Checkout -> Intern-Scrapper)
- Android App (In Progress -> Intern-Application).
📚 Features & Learnings -
- Created own endpoints, handle client request and receive query parameters.
- Used Dependency Injection using Koin, Supports Monitoring and Status Page.
- JWT Token Authentication Provided & Passwords are Hashed using JBCrypt.
- Pagination Added to Endpoints that fetches large Data - User, Job, Exam and Filter.
- Many Useful tips and tricks of Postman.
Deployed to Heroku - https://aditya-intern-backend.herokuapp.com(Not Available as Heroku free Dynos are no longer supported)- Postman Collection for testing endpoints: https://github.com/aditya-190/Intern-Backend/blob/master/Intern.postman_collection.json
- Now you can add multiple jobs in a single request.
- Intern Scrapper is integrated.
- After Successfull data insertion to database, it will send Notification to ADMIN using FCM.
- Kotlin as programming language.
- Ktor as web framework.
- Koin as dependency injection framework.
- Kotlinx as data bind serialization/deserialization.
- auth-jwt for JWT spec implementation.
- MongoDb as database.
- Kmongo as Sql framework to persistence layer
sample_video.mov
- Take a look at the Existing Issues or create your own Issues!
- Wait for the Issue to be assigned to you after which you can start working on it.
- Fork the Repo and create a Branch for any Issue that you are working upon.
- Create a Pull Request which will be promptly reviewed and suggestions would be added to improve it.
- Add Screenshots to help me know what this Code is all about.