This project aims to rebuild the Tekana-eWallet legacy application's back-end system using Django and GraphQL. The Tekana-eWallet application is a globally used platform for money transfers, and this effort focuses on delivering a robust and innovative back-end solution.
- Project Overview
- Requirements
- Strategy
- Technical Stack
- Code Structure
- Database Design
- API Design
- Testing and Quality Assurance
- Deployment
- Documentation
- Creativity and Innovation
- Pilot System and Monitoring
The following features need to be built in this back-end solution:
- Create and Read customers (Registration)
- Create and Read wallets of customers
- Create and Read transactions
- Gather Stakeholders: Assemble the project team, including back-end developers, front-end developers, UI/UX designers, a product owner, Scrum Master, and subject matter experts.
- Define Objectives: Clearly define project objectives, constraints, timelines, and budget.
- Tech Stack Selection: Choose Django and GraphQL as the technology stack.
- Engage with Business Units: Collaborate closely with the business team to understand customer needs and gather detailed requirements.
- Document User Stories: Create user stories and prioritize features for the pilot system.
- Front-End Collaboration: Work closely with the front-end team to ensure alignment between back-end and front-end requirements.
- High-Level Architecture: Define the high-level architecture, considering scalability, security, and maintainability.
- Data Model Design: Design a robust data model for customers, wallets, and transactions.
- API Design: Plan the structure of GraphQL queries and mutations.
- Coding Standards: Ensure that all developers follow coding standards and conventions.
- Modular Code: Create a modular codebase for enhanced maintainability and reusability.
- Database Optimization: Optimize the database for high performance, including indexing and normalization.
- Documentation: Include meaningful comments and documentation for easy testing and maintenance.
- GraphQL Implementation: Implement GraphQL queries, mutations, and schemas.
- Unit Testing: Execute unit tests to ensure code correctness.
- Integration Testing: Test the integration between different components.
- Performance Testing: Ensure the system can handle a large number of transactions.
- Security Testing: Validate the system's security measures, including data protection and authorization.
- API Documentation: Create clear and concise GraphQL API documentation.
- Deployment: Prepare the system for deployment, ensuring it can run without additional configuration.
- Push to Git: Push the source code to Git, making it accessible to recruiters.
- Innovative Features: Implement creative and innovative features to enhance the user experience.
- Problem-Solving: Identify and solve challenges uniquely.
- Pilot Launch: Deploy the pilot system in a controlled environment for testing and monitoring.
- Monitoring: Set up monitoring tools to track system performance and user behavior.
- Feedback Loop: Continuously collect feedback from users and stakeholders for further improvements.
- Django: The web framework for building the back-end.
- GraphQL: A query language for your API and a runtime for executing those queries by connecting to your data source.
- The codebase is structured following Django best practices, ensuring modularity, readability, and maintainability.
- The database design focuses on high performance, using indexing and normalization where needed.
- GraphQL is used to design the API, providing flexibility to clients to request the data they need.
- Comprehensive testing has been conducted, including unit testing, integration testing, performance testing, and security testing.
- The application is designed to be deployed with minimal configuration.
- Detailed API documentation is available for ease of use by developers and stakeholders.
- Innovative features have been implemented to enhance the user experience.
- The pilot system has been deployed and is continuously monitored to ensure optimal performance.
The source code for this project can be found on our GitHub repository.
If you have any questions or need support, please feel free to contact us at [juliushirwa@gmail.com].