- create a node boilerplate
- create a data model (sql table or nosql collection)
- create endpoints using koa (POST, PATCH, GET, DELETE)
- expose data model in these endpoints
- dockerfile to create a docker image
- deploy in a vps using docker compose, or using k8s deployment + service
- add integration tests using supertest
- create a basic login/auth using email + pwd bcrypt
Here is a short list of problems to solve in "any" Fintech
- KYC
- Ledger
- Scaling
- Reliability
- Latency
- Security
- Data Consistency
- Integration with many external systems
- do you use feature flags? expand
- do you use git flow?
- have you decoupled deploy from release? https://www.honeycomb.io/blog/deploys-wrong-way-change-user-experience
- do you use sprints?
- do you have automated tests?
- do you do refactoring?
- do you use types (typescript)?
- how do you manage the project?
- do you have daily meetings? expand
- do you have written documentation?
These are review based on woovi frontend junior challenge
- deploy frontend
- select a bundling tools like nextjs, vite, webpack or rspack
- use css in js
- make proper components
- avoid hard coded values like colors, spacing, typography
- create a mini design system
- use a form library like formik
- use a validation library like yup
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import React, { useContext, useCallback } from 'react'; | |
export const FeatureFlagContext = React.createContext<string[]>([]); | |
export const useFeatureFlag = () => { | |
const features = useContext<string[]>(FeatureFlagContext); | |
const hasFeature = useCallback( | |
(feature: string) => { | |
return features.includes(feature); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type Props = { | |
}; | |
const FormUseFormik = (props: Props) => { | |
const { enqueueSnackbar } = useSnackbar(); | |
const onSubmit = (values) => { | |
enqueueSnackbar(`submit: ${JSON.stringify(values)}`, { | |
preventDuplicate: true, | |
persist: false, | |
}); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { transform } from '@swc/core'; | |
import fs from 'fs/promises'; | |
import path from 'path'; | |
import { fileURLToPath } from 'url'; | |
const cwd = process.cwd(); | |
export async function load(url, context, defaultLoad) { | |
if (url.endsWith('.tsx')) { | |
const filePath = fileURLToPath(url); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import fs from "fs"; | |
import path from "path"; | |
import forge from "node-forge"; | |
const cwd = process.cwd(); | |
function computeFingerprint(cert: forge.pki.Certificate): string { | |
const asn1Cert = forge.pki.certificateToAsn1(cert); | |
const der = forge.asn1.toDer(asn1Cert).getBytes(); | |
const md = forge.md.sha1.create(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: batch/v1 | |
kind: CronJob | |
metadata: | |
name: mongodb-backup-woovi-dev | |
namespace: mongodb-backup-dev | |
spec: | |
schedule: "0 1 * * *" | |
concurrencyPolicy: Forbid | |
jobTemplate: | |
spec: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: apps/v1 | |
kind: Deployment | |
metadata: | |
labels: | |
name: mongodb1 | |
name: mongodb1 | |
namespace: woovi-mongo-dev | |
spec: | |
replicas: 1 | |
strategy: |
NewerOlder