Chimoney / chimoney-community-projects

Repo for Community Contributors
http://api.chimoney.io/
MIT License
115 stars 151 forks source link

Chimoney Fullstack Developer Challenge #348

Open uchibeke opened 3 months ago

uchibeke commented 3 months ago

Description

This challenge is open to anyone who is interested in a Fullstack Developer role at Chimoney. Please, feel free to complete this challenge and invite @uchibeke to the Github PR to evaluate it. Feel to to have it in a public or private repo (invite @uchibeke as a Collaborator)

Welcome to the Chimoney Fullstack Developer Challenge! This challenge is designed to assess your skills and abilities across various aspects of fullstack development, including frontend and backend development, API integration, security, and understanding of payments and web3. You will have 7 days to complete the challenge (Ping @uchibeke on the day you decide to start the Challenge).

Challenge Overview:

You are tasked with building a simple deployed web application that allows users to create and manage their accounts, send and receive payments, and view transaction history. The application should be built using React with Next.js (or similar frameworks) on the frontend and Node.js with Express on the backend. Firestore/Supabase (for simplicity or another DB of your choice) will be used as the database, and the application should be deployed using Vercel/Render/Heroku/AWS/GCP etc. It should be live and viewable and have CI/CD.

Requirements:

  1. User Authentication: Implement user authentication using Firebase Authentication or similar. Users should be able to sign up, log in, and log out securely.

  2. Dashboard: Create a dashboard page where users can view their account balance, recent transactions, and perform actions such as sending and receiving payments. This could be a call to Chimoney to pull user transactions.

  3. Send Payment: Implement a feature that allows users to send payments to other users and non-users using Chimoney's API. Users should be able to specify the recipient's account ID (through a search), email or phone number and the amount to send.

  4. Receive Payment: Implement a feature that allows users to receive payments from other users. When a payment is received, it should be reflected in the user's account balance and transaction history. Consider allowing users receive Payments to their email or phone (powered by Chimoney) and cashing it into their Account in the Web App.

  5. Transaction History: Create a page where users can view their transaction history, including details such as transaction date, type (sent or received), amount, and recipient/sender information. This could be a call to Chimoney's API to pull user transactions and rendering this is a standard table using a table module of your choosing.

  6. Security: Ensure that sensitive user data such as passwords and payment information is stored securely and encrypted. Implement necessary security measures to prevent common vulnerabilities such as XSS and CSRF attacks.

  7. API Integration: Integrate Chimoney's API for sending and receiving payments. Refer to Chimoney's API documentation for details on endpoints and authentication.

  8. CI/CD: Set up continuous integration and deployment using a available tools. Automate the build and deployment process to ensure smooth and efficient deployment of updates.

  9. Ambition and Alignment: Demonstrate your ambition and alignment with Chimoney's values of excellence, speed, and impact by delivering a high-quality, well-designed application that meets the requirements and exceeds expectations.

Evaluation Criteria:

Your submission will be evaluated based on the following criteria:

Submission:

To submit your project, please mention @uchibeke in the GitHub repository containing your codebase. Include all required information in the PR along with any necessary instructions for running the application locally and the live lin. Additionally, include a brief summary of your approach and any challenges you encountered during the development process.

Good luck, and we look forward to reviewing your submission!

Brownei commented 2 months ago

@uchibeke i would like to work on this but I'll like to ask a simple question. Must the backend be written with Express.js, what about Nest.js?

Brownei commented 2 months ago

@uchibeke i would like to work on this but I'll like to ask a simple question. Must the backend be written with Express.js, what about Nest.js?

uchibeke commented 2 months ago

S

@uchibeke i would like to work on this but I'll like to ask a simple question. Must the backend be written with Express.js, what about Nest.js?

This works

Brownei commented 2 months ago

This

Then I'll like to start working on it, my 7 days will be up on Sunday yes?

Femtech-web commented 2 months ago

@uchibeke can I use React(vite) alone for the frontend. also is there a specific styling framework for the styling too or frameworks such as tailwindCss are acceptable?

uchibeke commented 2 months ago

@uchibeke can I use React(vite) alone for the frontend. also is there a specific styling framework for the styling too or frameworks such as tailwindCss are acceptable?

You can use tailwind and vite. However, it’ll be better to try to use nextjs and mui. But up to you

maaz619 commented 2 months ago

@uchibeke just a lil query. Is this a fully remote opportunity?

Femtech-web commented 2 months ago

@uchibeke can I use React(vite) alone for the frontend. also is there a specific styling framework for the styling too or frameworks such as tailwindCss are acceptable?

You can use tailwind and vite. However, it’ll be better to try to use nextjs and mui. But up to you

okay I'll begin tomorrow then

michaelhpet commented 2 months ago

I'd love to try this, not for the job opportunity, but for the sake of the experience (haven't worked in fintech). Will you be available to review at any time in the near future?

Ojochogwu866 commented 2 months ago

Hello @uchibeke Can one use typescript, or we should stick with JS

todak2000 commented 2 months ago

@uchibeke i am starting tomorrow

uchibeke commented 2 months ago

@uchibeke just a lil query. Is this a fully remote opportunity?

yes

uchibeke commented 2 months ago

I'd love to try this, not for the job opportunity, but for the sake of the experience (haven't worked in fintech). Will you be available to review at any time in the near future?

Yes. Happy to review and provide feedback. Excited to see what you'd create with the API

uchibeke commented 2 months ago

Hello @uchibeke Can one use typescript, or we should stick with JS

TS and JS works. No preference

Ojochogwu866 commented 2 months ago

Hello @uchibeke Can one use typescript, or we should stick with JS

TS and JS works. No preference

Alright. Thanks. Will update shortly when I am ready to start

kcokoji commented 2 months ago

Hello @uchibeke I would like to make an inquiry,can I just use next Js for the project.I can work with serverless actions and still achieve this

uchibeke commented 2 months ago

Hello @uchibeke I would like to make an inquiry,can I just use next Js for the project.I can work with serverless actions and still achieve this

Yes. Full next works

kcokoji commented 2 months ago

Hello @uchibeke I would like to make an inquiry,can I just use next Js for the project.I can work with serverless actions and still achieve this

Yes. Full next works

Is there a timeframe for this challenge,I know about the 7days but is there like a timeframe the challenge will last

ifeoluwaayo commented 2 months ago

@uchibeke can I use nextjs and firebase alone or it's compulsory I use node and express for the BE?

uchibeke commented 2 months ago

@uchibeke can I use nextjs and firebase alone or it's compulsory I use node and express for the BE?

No. Express isn’t mandatory

traez commented 2 months ago

Thanks for handing out opportunities to we up and coming. We will make an attempt

uchibeke commented 2 months ago

Hello @uchibeke I would like to make an inquiry,can I just use next Js for the project.I can work with serverless actions and still achieve this

Yes. Full next works

Is there a timeframe for this challenge,I know about the 7days but is there like a timeframe the challenge will last

We will leave this open and consider folks for opportunities as more opportunities open up. But we will schedule follow-on interviews starting next monday

dro-1 commented 2 months ago

Hello @uchibeke I would like to make an inquiry,can I just use next Js for the project.I can work with serverless actions and still achieve this

Yes. Full next works

Is there a timeframe for this challenge,I know about the 7days but is there like a timeframe the challenge will last

We will leave this open and consider folks for opportunities as more opportunities open up. But we will schedule follow-on interviews starting next monday

Is it safe to assume the deadline for the last day of submission as Sunday?

tonyekim commented 2 months ago

@uchibeke I am about to start the project..

tonyekim commented 2 months ago

For the user auth express.js and MongoDB is my choice, I hope this is still in line with the requirements

uchibeke commented 2 months ago

For the user auth express.js and MongoDB is my choice, I hope this is still in line with the requirements

This works

auxibee commented 2 months ago

@uchibeke starting project. deployed link https://chimoney.vercel.app/ github repo https://github.com/auxibee/chimoney

dro-1 commented 2 months ago

@uchibeke Started working on it around 10PM yesternight. I'll be using MongoDB for my database instead.

akinloludavid commented 2 months ago

@uchibeke is it compulsory to use firebase authentication or we can use a custom authentication

akinloludavid commented 2 months ago

@uchibeke started project last night: github repo: https://github.com/akinloludavid/chimoney-fullstack-app

Ojochogwu866 commented 2 months ago

Hello @uchibeke Can one use typescript, or we should stick with JS

TS and JS works. No preference

Alright. Thanks. Will update shortly when I am ready to start

Hello @uchibeke I am starting now. Thanks

ekrresa commented 2 months ago

Hi @uchibeke I'm starting the challenge today

maaz619 commented 2 months ago

@uchibeke i have started.

uchibeke commented 2 months ago

@uchibeke is it compulsory to use firebase authentication or we can use a custom authentication

Not compulsory. Document whatever you use that needs to be documented

Jhon-crypt commented 2 months ago

@uchibeke I'll be starting the Fullstack Developer Challenge from today

cooleraid commented 2 months ago

Hi @uchibeke, I'd be starting the challenge today.

streuby commented 2 months ago

I'm glad to be availed of this challenge.

kinyichukwu commented 2 months ago

This is awesome🚀.

uchibeke commented 2 months ago

I'm happy to take on this challenge, but I have a question. Are we able to integrate payment gateways besides Chimney's?

Sure as long as you’re following all the requirements

maaz619 commented 2 months ago

@uchibeke i'm just confused that if i'm letting user create an account. so if a user signs up then must need a chimoney account as well. I'm asking because in order to show the wallet or account balance i need chimoney account for every user who signs up. ain't i? Also do i need to store all txns. explicitly on the db( supabase ). How thats gonna happen? I just need a little hint. Please..

onyedikachi-david commented 2 months ago

Hi @uchibeke I started today, and I sent you an invite to this private repo: chimoney-fullstack-dev-challenge

uchibeke commented 2 months ago

@uchibeke i'm just confused that if i'm letting user create an account. so if a user signs up then must need a chimoney account as well. I'm asking because in order to show the wallet or account balance i need chimoney account for every user who signs up. ain't i? Also do i need to store all txns. explicitly on the db( supabase ). How thats gonna happen? I just need a little hint. Please..

Please read through the Chimoney API docs + other closed PRs and issues in this Repo

Emekarr commented 2 months ago

@uchibeke I am starting today.

streuby commented 2 months ago

@uchibeke Can I use just create-react-app without any React-powered framework like Next.js, Remix, Gatsby, Expo etc?

Jhon-crypt commented 2 months ago

@uchibeke while testing the api on Swagger Ui, it retuned a CORS error response

error
onyedikachi-david commented 2 months ago

@uchibeke while testing the api on Swagger Ui, it retuned a CORS error response error

same error, solved?

uchibeke commented 2 months ago

Please share the link you’re testing with

onyedikachi-david commented 2 months ago

Please share the link you’re testing with

I'm using the sandbox endpoint. And I'm testing it on the swagger docs.

http://api-v2-sandbox.chimoney.io

uchibeke commented 2 months ago

Please use https://chimoney.readme.io/reference/introduction

Jhon-crypt commented 2 months ago

@uchibeke I'll be starting the Fullstack Developer Challenge from today

@uchibeke just added you as a collaborator in my repo