- Architecture Diagram of Application
- Build and Deploy Flow
- File Structure
- Assumptions for this MVP
- To do list
- Backend applicaiton (build upon Python and Flask)
- Backend - Integration with Apache Kafka
- Backend - Integrartion with Socket Library
- Frontend application (build upon Webcomponents and Lit)
- Frontend - Integration with Socket Library
Note: This one is not fully operational. So kept the solution in the separate branch
- Docker image of the backend Python
- K8S setup using minikube
- Spinning Kafka pod
File structure for frond end application
|____frontendApp
| |____meetup-rsvp-fe
| | |____test
| | |____node_modules
| | |____index.js
| | |____custom-elements.json
| | |____README.md
| | |____stories
| | |____package-lock.json
| | |____package.json
| | |____web-dev-server.config.mjs
| | |____src
| | | |____MeetupRsvpFe.js
| | | |____services
File structure for backend applicaiton
____backendService
| |____mocks
| |____tests
| |____manifest.in
| |____flaskr
| | |____constants.py
| | |____data_pipeline_input.py
| | |____kafka_connector_service.py
| | |____data_validation_filteration.py
| | |____static
| | |____app.py
| | |____templates
| | |____data_pipeline_output.py
| | |____processorKafkaStream.py
| | |____data_pipeline_processor.py
| |____setup.py
File structure for dev ops
# Removed for now
- For Backend Application
- For Frontend Application
- [For Devops][./buildDeploy/README.md]
- Version controlling at local, as it was not supposed to be published.
- As API from meetup and documentation are not available. While validation, processing, filtering. Some assumptions have been used.
- No databse has been connected as one of two approaches. Destination-to-Destination is used.
- For build of backend project, haven't invested in separate complete build process. But for docker in docker file app can be installed by using configuration files.
- For front end, build less design is used as web component library has quite good performance. Only for acutal production deployment build is required.
- Functional testing is done, performance testing not completed
- Test automation suites are included but few tests for showcasing capability are included.
- System is designed a way that it can be converted in micro-services design pattern but, at the moment it is one single application.
- For processing data libraries like Apache Flink can be used.
- Automation testing, Started but not completed.
- Threading can be improved by event handling. Not invested at the moment.
- Complete CI/CD pipeline with cloud like environment.