Loading...
Loading...
Loading...
Loading...
Loading...
layout: schedule schedule: monday: # - name: Build # start: 10:00 # end: 13:00 # type: project # - name: Thought of the Week # url: https://www.notion.so/foundersandcoders/Personal-Development-91fe75c7e2cc4f989954108729a2c834 # type: personal-development # start: 14:00 # end: 14:45 # - name: Build # start: 14:45 # end: 17:45 # type: project # - name: Check out # start: 17:45 # end: 18:00 tuesday: # - name: Build # start: 10:00 # end: 12:45 # type: project # - name: Role circles # start: 12:45 # end: 13:00 # url: https://foundersandcoders.notion.site/Role-circles-a2371aab24f34955a69904b87ffc1f05 # - name: Build # start: 14:00 # end: 16:00 # type: project # - name: Update READMEs # start: 16:00 # end: 16:15 # - name: Team code review # start: 16:15 # end: 17:45 # url: https://foundersandcoders.notion.site/Code-Reviews-5c3b987ed1204e46b4c738da538a758c wednesday: # - name: Web Science # start: 10:00 # end: 11:00 # type: presentation # - name: Build # start: 11:00 # end: 13:00 # type: project # - name: Build # start: 14:00 # end: 17:45 # type: project - name: Thought of the week. Healthy Working Relationships and Conflict Resolution type: thought url: https://docs.google.com/presentation/d/1phpxhz6laAZcph84D04u02QaBEeKJ_U_1VLqDNV3hjo/edit#slide=id.g25ece6437ef_0_0 start: 10:30 end: 10:45 thursday: # - name: Update READMEs # start: 10:00 # end: 10:15 # - name: Sprint Review # start: 10:15 # end: 11:45 # - start: 11:45 # end: 13:00 # name: Presentation prep # url: https://foundersandcoders.notion.site/In-House-Project-Presentation-e1936ce95a8041b9b8a93e5d4f638ff6 # - name: Project documentation # start: 15:30 # end: 16:00 friday:
.NET Path
This week focuses on improving code quality and testability of the library management system through dependency injection and comprehensive testing strategies.
Dependency Injection principles in .NET
Unit testing with .NET testing frameworks
Test-driven development practices
Code organization and solution architecture
Mock databases for testing
Code refactoring techniques
Implementing dependency injection
Writing comprehensive API tests
Refactoring code for better maintainability
Creating mock objects for testing
Improving project structure
Implementing verification systems
Understanding dependency injection concepts
Writing effective unit tests
Mocking dependencies for testing
Refactoring code for better testability
Implementing verification systems
PHP Path
This week focuses on advanced WordPress development, including custom plugin creation, theme integration, and implementing dynamic features using AJAX and APIs.
Custom plugin development
WordPress hooks and filters
AJAX implementation in WordPress
External API integration
Shortcode creation and usage
Front-end integration techniques
Testing and documentation
Planning plugin functionality
Creating custom post types and taxonomies
Building admin interfaces
Implementing AJAX features
Integrating with external APIs
Creating shortcodes
Writing documentation
Building custom WordPress plugins
Working with WordPress APIs
Implementing dynamic features with AJAX
Creating responsive and accessible interfaces
Testing WordPress applications
Writing technical documentation
Your task this week is to continue building the project from last week but to try and add some .NET tests and more broadly to use dependency injection.
Before you start think what are your dependencies. Which of these are tightly tied to other classes in a way that will slow development or make testing hard. If you want to replace this with dependency injection think what will the interface look like.
What do you want the structure of your project to look like and how should the solution file be configured to allow that?
Where do you want to use dependency injections in my code?
How will you test the functionality of the API?
Where you are using interfaces what keys and methods will the interface need to look for?
Monday: Planning the Plugin Functionality
Objectives:
Define the plugin's purpose, features, and data requirements.
Design the database schema if needed.
Set up version control.
Activities:
Brainstorm Plugin Ideas:
Possible Ideas:
Event Manager with custom event posts.
Testimonials plugin with submission form.
Simple CRM for managing contacts.
Outline Main Features:
User Interactions:
Front-end forms for data submission.
Admin pages for data management.
Functionality:
CRUD operations (Create, Read, Update, Delete).
Notifications or email integration.
Design Database Schema:
Identify Data Entities:
Determine what data needs to be stored.
Sketch Tables and Relationships:
Use diagrams or tools like Draw.io.
Tuesday: Developing the Plugin Backend
Objectives:
Start coding the core functionality of the plugin.
Create custom post types and taxonomies.
Build admin menus and settings pages.
Activities:
Register Custom Post Types (CPT):
Add Code in Plugin File:
Add Custom Taxonomies:
Register Taxonomy:
Build Admin Menus and Settings Pages:
Add Menu Page:
Create Settings Page Content:
Use the WordPress Settings API:
Register Settings:
Create Settings Form:
Wednesday: Enhancing the Plugin with AJAX and APIs
Objectives:
Implement dynamic features using AJAX.
Integrate external APIs if applicable.
Activities:
Implement AJAX in the Plugin:
Enqueue Scripts:
Create JavaScript File plugin-ajax.js
:
Handle AJAX Request in PHP:
Integrate External APIs (Optional):
Choose an API:
For example, fetch event data from a public API like Eventbrite.
Make API Requests:
Use wp_remote_get()
to fetch data.
Display Data on Front-End:
Process and output the data within templates or via shortcodes.
Continue Integrating TypeScript:
Use TypeScript for AJAX Calls:
Convert plugin-ajax.js
to TypeScript and place it in src/
.
Update Build Process:
Ensure Webpack compiles the TypeScript file into JavaScript.
Enqueue the Compiled Script:
Update the script handle and path in your plugin.
Thursday: Presentation Preparation and Delivery
Objectives:
Prepare and deliver a 20-minute presentation showcasing the plugin progress.
Continue normal development activities.
Activities:
Morning Development:
Integrate Plugin with Theme:
Connect plugin functionalities to the custom theme.
Enhance Plugin Features:
Add new features or refine existing ones.
Debug and Test:
Ensure the plugin works seamlessly within the theme.
Presentation Preparation (1 hour):
Summarize Plugin Progress:
Outline key functionalities developed.
Prepare Presentation Materials:
Create slides or notes.
Set up a live demo.
Rehearse:
Practice delivering the presentation within the time limit.
Deliver the Presentation (20 minutes):
Presentation Content:
Introduce your plugin and its purpose.
Demonstrate key features and integrations.
Discuss challenges faced and solutions implemented.
Engage with the Audience:
Encourage questions and feedback.
Afternoon Development:
Implement Feedback:
Incorporate any useful suggestions received during the presentation.
Continue Development:
Proceed with pending tasks.
Friday: Front-End Integration and Shortcodes
Objectives:
Connect the plugin with the theme.
Provide user-facing features using shortcodes and widgets.
Activities:
Create Shortcodes to Display Plugin Data:
Display Events List:
Use Shortcode in a Page:
Add [events_list]
to display the list of events.
Design Front-End Templates for CPT:
Create Template Files:
single-event.php
for individual events.
archive-event.php
for event archives.
Customize Templates:
Use HTML and WordPress functions to display event details.
Example for single-event.php
:
Ensure Responsive Design and Accessibility:
Use Responsive CSS Frameworks (Optional):
Integrate Bootstrap or Tailwind CSS.
Accessibility Best Practices:
Use semantic HTML.
Ensure proper contrast and font sizes.
Add alt
attributes to images.
Optimize Assets with TypeScript and CSS Preprocessors:
Set Up SASS (Optional):
Install node-sass
:
Update Build Process:
Configure Webpack to process SCSS files.
Example webpack.config.js
update:
Organize Styles:
Create SCSS files in src/styles/
.
Import Styles in TypeScript: