Coding
assignments hub
Dive into our tailored coding challenges, a crucial step in your journey to joining the Apexive team. These assignments are designed not only to assess your technical skills but also to give you a taste of the real-world problems you'll tackle with us.
Complete the challenge and submit your solution through our technical survey to move forward in our hiring process.
Submission Requirements | Django Assignment | Flutter Assignment
Submission
Requirements
For your submission to be considered, please adhere to the following guidelines:
Specific File Links: In the survey, provide direct links to specific files within your repository.
Include line anchors to pinpoint exact code segments you want to highlight.
Note: Submissions with generic repository links will result in automatic disqualification.
Architect Assignment Expectations
Your Architect submission should demonstrate
- Project Organization: Adherence to Django best practices for project structure.
- Consistent Use of Django Components: Skillful use of views, view sets, query sets, and managers.
- Functionality Distribution: Effective allocation of tasks among query sets, models, view sets, and serializers.
- Principles Application: Clear demonstration of DRY (Don't Repeat Yourself) and OOP (Object-Oriented Programming) principles in your code.
Flutter Assignment
Expectations
Your Flutter submission should showcase
- State Management: Efficient handling of the app's state changes.
- Error Management: Robust error handling and management strategies.
- UI/Logic Separation: Clear separation between user interface components and business logic.
- API Integration: Effective integration and utilization of external APIs.
- App Theming: Consistent and appealing theming
across the application.
Coding assignments
As a prospective member of our innovative team, these assignments provide you with the opportunity to demonstrate not
just your technical prowess but also your problem-solving capabilities, creativity, and commitment to best practices.
We encourage you to select assignments that align with your expertise and experience level.
Overview:
This assignment is designed to evaluate your skills and approach as a
Senior Architect. We expect you to
apply the best practices of Django and Python, paying close attention to the specific requirements outlined below.
Task Description:
Your task involves three key components:
- Importer Creation:
- Develop an importer module to read data from the file Data/import - pilotlog_mcc.json.
- Django App Development:
- Create a Django app named pilotlog. This app should include data models to store the imported data effectively.
- CSV Exporter Creation:
- Implement a CSV exporter module that can export the data in the format specified in export-logbook_template.csv.
The Data folder can be found here:
https://drive.google.com/drive/folders/1lBaMf-NzllAOefiTEpZCRfobbU270ZHI?usp=drive_link
Requirements:
- Reusability: Both the importer and exporter should be implemented as reusable modules.
- Data Model Design: The data model must adhere to DRY (Don't Repeat Yourself) principles and follow a normalized SQL ORM schema. Design with future adaptability in mind, avoiding hardcoding of names or rigid structures.
- Future Changes Consideration: Anticipate potential changes in the models and structure your code to accommodate such evolutions with minimal disruption.
Submission Guidelines:
- Repository Creation: Set up an open GitHub repository for your assignment.
- Code Review Survey: Use this repository to fill out our code review survey. Ensure that your submission includes direct links to specific files and line anchors within those files.
- Important Note: Submissions with generic links to the entire repository will result in automatic disqualification.
Prepare Your
Code
Finalize and document your code. Store it in a public repository (e.g., GitHub).
Gather Submission Links
Collect direct links to specific files and line anchors in your repository.
Update Your
Technical Survey
Revisit the technical survey you initially completed and add the collected links to your survey responses, ensuring they are accurate and functional.
Resubmit the
Survey
Carefully review your survey responses and resubmit.
Essential FAQ
Apexive offers tailored coding challenges as a crucial step in the hiring process, designed to assess technical skills and problem-solving abilities.
Complete the challenge and submit your solution through the technical survey provided by Apexive.
Submissions must include direct links to specific files within your repository, with line anchors to highlight exact code segments. Generic repository links are not accepted.
The Python/Django submission should show adherence to Django best practices, skillful use of Django components, effective task distribution, and clear application of DRY and OOP principles
A Flutter submission should showcase efficient state management, robust error handling, clear UI/logic separation, effective API integration, and consistent theming.
Assignments are available for Senior Python/Django Engineer, Senior Flutter Engineer, and Senior Python Odoo Engineer roles.
The task involves creating an importer module, developing a Django app named 'pilotlog', and implementing a CSV exporter module.
Data models must adhere to DRY principles, follow a normalized SQL ORM schema, and be designed for future adaptability.
Finalize and document your code, store it in a public repository (e.g., GitHub), and collect direct links to specific files and line anchors in your repository.
Update your initial technical survey with the collected links and resubmit it, ensuring the links are accurate and functional.
Overview:
This assignment is designed to evaluate your skills and approach as a
Senior Architect. We expect you to
apply the best practices of Django and Python, paying close attention to the specific requirements outlined below.
Task Description:
Your task involves three key components:
- Importer Creation:
- Develop an importer module to read data from the file Data/import - pilotlog_mcc.json.
- Django App Development:
- Create a Django app named pilotlog. This app should include data models to store the imported data effectively.
- CSV Exporter Creation:
- Implement a CSV exporter module that can export the data in the format specified in export-logbook_template.csv.
The Data folder can be found here:
https://drive.google.com/drive/folders/1lBaMf-NzllAOefiTEpZCRfobbU270ZHI?usp=drive_link
Requirements:
- Reusability: Both the importer and exporter should be implemented as reusable modules.
- Data Model Design: The data model must adhere to DRY (Don't Repeat Yourself) principles and follow a normalized SQL ORM schema. Design with future adaptability in mind, avoiding hardcoding of names or rigid structures.
- Future Changes Consideration: Anticipate potential changes in the models and structure your code to accommodate such evolutions with minimal disruption.
Submission Guidelines:
- Repository Creation: Set up an open GitHub repository for your assignment.
- Code Review Survey: Use this repository to fill out our code review survey. Ensure that your submission includes direct links to specific files and line anchors within those files.
- Important Note: Submissions with generic links to the entire repository will result in automatic disqualification.
Prepare Your
Code
Finalize and document your code. Store it in a public repository (e.g., GitHub).
Gather Submission Links
Collect direct links to specific files and line anchors in your repository.
Update Your
Technical Survey
Revisit the technical survey you initially completed and add the collected links to your survey responses, ensuring they are accurate and functional.
Resubmit the
Survey
Carefully review your survey responses and resubmit.
Essential FAQ
Apexive offers tailored coding challenges as a crucial step in the hiring process, designed to assess technical skills and problem-solving abilities.
Complete the challenge and submit your solution through the technical survey provided by Apexive.
Submissions must include direct links to specific files within your repository, with line anchors to highlight exact code segments. Generic repository links are not accepted.
The Python/Django submission should show adherence to Django best practices, skillful use of Django components, effective task distribution, and clear application of DRY and OOP principles
A Flutter submission should showcase efficient state management, robust error handling, clear UI/logic separation, effective API integration, and consistent theming.
Assignments are available for Senior Python/Django Engineer, Senior Flutter Engineer, and Senior Python Odoo Engineer roles.
The task involves creating an importer module, developing a Django app named 'pilotlog', and implementing a CSV exporter module.
Data models must adhere to DRY principles, follow a normalized SQL ORM schema, and be designed for future adaptability.
Finalize and document your code, store it in a public repository (e.g., GitHub), and collect direct links to specific files and line anchors in your repository.
Update your initial technical survey with the collected links and resubmit it, ensuring the links are accurate and functional.
Description
We are seeking a Flutter developer to implement a timer application with specific UI requirements. The candidate should demonstrate skills in building widgets, applying theme styles (TextStyle, Color, etc.), and using the BLoC pattern for state management. The task involves creating three main layouts based on provided Figma designs.
Task Requirements
- List of Timers Screen:
- Display a list of timers.
- Each list item should show relevant details provided in the design.
- Pressing the play/pause button should run or pause the timer
- Skip implementing different tabs (favorite, odoo etc)
- Skip implementing the bottom navigation bar (recents, projects etc)
- Plus button in the AppBar should take user to create timer screen
- Create Timer Screen:
- Implement a form to create a new timer.
- Include dropdowns for selecting projects and tasks.
- Add a text input for the timer description.
- Include a checkbox for marking the timer as a favorite.
- Upon adding a timer user should return to the list of timers screen.
- Task Details Screen:
- Display details of a selected task in the details tab(you can use random or static deadline and assigned to values)
- Show the running timer-related details and description in the timesheets tab. Pressing play/pause should run or pause the timer. Pressing stop will mark it as completed.
- Updating the timer state should reflect on the list of timer screen and vice-versa.
- Show normal completed timers (Optional)
- Show expandable completed timers (Optional)
- In-Memory Data Management:
- Use a pre-defined in-memory list for projects and tasks data. Each Timer can contain information about Task, and Project as well. Feel free to structure the data as you wish from the desgin.
- All data (timers, projects, tasks) should be managed in-memory. Use hydrated_bloc package if needed to persist some data. No need for persistence otherwise.
- Theme and Styling:
- Implement theme styles (TextStyle, Color, etc.) according to the provided design system in Figma.
- Ensure the UI matches the Figma designs.
- State Management:
- Use the BLoC pattern for state management across the application.
- Figma Designs:
Submission Guidelines
- Repository Creation: Set up an open GitHub repository for your assignment.
- Code Review Survey: Use this repository to fill out our code review survey. Ensure that your submission includes direct links to specific files and line anchors within those files.
- Important Note: Submissions with generic links to the entire repository will result in automatic disqualification.
Evaluation Criteria
- Adherence to the design and functional requirements.
- Quality of code, including readability and structure. The code should be DRY.
- Effective use of Flutter and the BLoC pattern.
- Implementation of theme styles accurately as per design.
Modification of Attendance Module in Odoo
Enhance the existing Attendance module in Odoo to allow users to:
- Select a Project: Users should be able to choose a specific project while checking in.
- Select a Project Task: Along with selecting a project, users should also be able to select a specific task related to the chosen project.
- Write Descriptions: Enable users to add a description for their activities during both check-in and check-out.
Detailed Requirements:
1. User Interface Adjustments:
- Modify the check-in/check-out screen to include dropdown menus or selection fields for projects and tasks.
- Ensure that the project and task fields are dynamically linked (selecting a project should filter the available tasks related to it).
- Provide a text box for entering descriptions.
2. Backend Modifications:
- Adjust the database schema to store the additional information: project, task, and descriptions.
- Ensure that the data is correctly linked to the user's attendance record.
3. Data Validation:
- Implement checks to ensure that a project and task are selected, and a description is entered before allowing check-in or check-out.
4. Testing:
- The module should be thoroughly tested to ensure data integrity and that the user interface is intuitive and error-free.
5. Documentation:
- Provide detailed documentation on the changes made, including any new database structures, code documentation, and user instructions.
Evaluation Criteria:
- Functionality: The modified module should work seamlessly with the existing Attendance system in Odoo.
- User Experience: The interface should be user-friendly and intuitive.
- Code Quality: The code should be clean, well-documented, and follow best practices.
- Error Handling: The system should gracefully handle and report errors.
- Documentation: Comprehensive documentation of the modifications.
Submission Guidelines:
- Repository Creation: Set up an open GitHub repository for your assignment.
- Code Review Survey: Use this repository to fill out our code review survey. Ensure that your submission includes direct links to specific files and line anchors within those files.
- Important Note: Submissions with generic links to the entire repository will result in automatic disqualification.
Invoice Reminder and Automation Module
This assignment is tailored for an Odoo Implementation Consultant, focusing on the practical application of Odoo modules. You will develop an XML module for Odoo 16 Community that automates invoice reminders, leveraging AI to optimize the process.
Task Description:
1. Invoice template
Create a template for the invoice reminder. This template should include necessary details about the overdue invoice and feature a button or link for direct access to the invoice in the Odoo system.
2. Create XML Module Using ChatGPT and Text Editor
Feel free to use ChatGPT or a similar AI tool to assist in generating the XML code for the module.
3. Module Functionality - Template Record and Cron Action
The module should programmatically create a record for the invoice reminder template in Odoo.
Implement a cron action within the module to automatically check the payment status of invoices. If an invoice remains unpaid for 7 days, the module should trigger the sending of the reminder using the created template.
Reference Example:
- Refer to this example module for guidance. This example can provide insights into the structure and components of a similar module.
Evaluation Criteria:
- Functionality: Accurate detection and reminder for unpaid invoices after 7 days.
- Code Quality: Clean, organized, and adhering to Odoo's best practices.
- Documentation: Clear and comprehensive documentation.
- Problem-Solving: Innovative and practical solutions in module design and functionality.
Submission Guidelines:
- Repository Creation: Set up an open GitHub repository for your assignment.
- Documentation: Include a README file in the repository with detailed documentation on the module’s functionality, installation process, and usage instructions.
- Important Note: Submissions with generic links to the entire repository will result in automatic disqualification.
Case Study: Djangoflow Framework
Overview:
Djangoflow, developed by Apexive, is an open-source framework that synergizes Flutter for cross-platform app development and Django for backend solutions. This framework is pivotal in Apexive's strategy to accelerate software development by reusing modular components, significantly reducing development time and enhancing code quality.
Background:
In the fast-paced environment of software development for startups, Apexive recognized the need for a framework that allows rapid deployment without compromising on quality. Djangoflow was created as a solution, utilizing a collection of reusable libraries and modules. These components, refined through various projects, embody the principles of efficiency and scalability.
The Challenge:
While Djangoflow had already streamlined many aspects of development, there was an ongoing challenge to further reduce the time-to-market for new projects. The goal was to enhance Djangoflow's modular capabilities, enabling even faster integration and customization for a wide range of projects.
Objective:
The primary objective was to expand Djangoflow's library of reusable modules, focusing on areas that typically require significant development time. This included advanced user authentication systems, complex data management solutions, and versatile API integrations.
Future Directions:
Apexive continues to expand the Djangoflow framework, constantly adding new modules and refining existing ones. The focus remains on staying ahead of market trends and technological advancements, ensuring that Djangoflow remains a cutting-edge tool for rapid, efficient software development.
This assignment aims to evaluate the competency of a senior DevOps engineer. You will be required to proficiently apply best practices and techniques.
Refactor monolith module into multiple
The primary task is to refactor the functionality between different modules and split them into separate repositories. This will allow us to have fine-grained control over ingress, databases, storage, and DNS at the project level.
This repository can serve as one of the standard cases for utilizing those modules in concerto. Additionally, we should create examples on how to customize deployment to finer details.
You can find the link to the module here: https://github.com/djangoflow/terraform-kubernetes-django
Submission Guidelines:
- Code Review Survey: Use this repository to fill out our code review survey. Ensure that your submission includes direct links to specific files and line anchors within those files.
- Important Note: Submissions with generic links to the entire repository will result in automatic disqualification.
Evaluation Criteria:
- Demonstration of fine-grained control at the project level.
- Code quality, focusing on readability and structure.
- Clarity and comprehensiveness of documentation.
- Proper completion of the code review survey, including direct links to relevant files and line anchors.
Start with the customer – find out what they want and give it to them.