DEV Community

Cover image for Taskbarter – Exchange Tasks for Free!
Mohsin Hayat
Mohsin Hayat

Posted on • Edited on

Taskbarter – Exchange Tasks for Free!

Project Overview

During the lockdown, I was working on Taskbarter, a platform where people can barter (or exchange) tasks for free. So, for example, you are not good in Content Writing, but you have exceptional programming skills, you can help people who want to solve programming problems and in return, people will help you do your content writing tasks. Just like Karma.

Once you do some tasks, you'll earn Barter points. You can use these barter points to exchange work from people. The work doesn't necessarily need to be time-taking or long. Students can exchange homework, experts can fix small bugs, 10-15 minutes tasks, anything is possible.

Demo Link

https://www.taskbarter.com/

If you don't want to create an account, use these details to test the app:
Username: demo | Password: 123123

How I built it

Frontend: React, Redux, Bootstrap
Backend: NodeJS, Express, MongoDB
Deployment: Github, Heroku, MongoDB Atlas

It could not have been possible without the Github Student Developer Pack.

  • I deployed the app on Heroku Hobby Dyno which I got from #GithubSDP
  • I used MongoDB Atlas to host the database from the $200 credits that I got from #GithubSDP
  • The emails sent from the server are sent through SendGrid's 15k/mo email package which I also got from #GithubSDP
  • Icons used in the website are from Icons8 pro package which I got from #GithubSDP

Additional Thoughts

I'm a student and I learned a lot in the process of making this web app. I went through long documentations of building secure, optimized applications and it was worth it. I worked on it day and night like if I'm building the next Facebook.

I'm proud of whatever I built. Who cares if the Web App doesn't take-off or it does not make a penny. At the end of the day, what all matters is the sense of confidence I got from building this app that I can build anything. I was always intimidated by large-scale applications and I was curious about what goes behind these apps. Now that I have built something of my own, the sense of accomplishment is all that matters.

Github Repository

https://github.com/taskbarter/main

Screenshots

Dashboard
Dashboard
Explore
Explore
Messages
Messages
Task Page
Task Page
Work Timeline (zoomed out)
Work
Feedback
Feedback
Add New Task
New Task

Top comments (25)

Collapse
 
godcrampy profile image
Sahil Bondre

That's a really cool project 😎. Is the code open sourced?

Collapse
 
mohsinht profile image
Mohsin Hayat

Thanks Sahil 😎

Currently it is not. Initially the repository was public then I got feedback from people that I should keep the code hidden (for security and privacy reasons). What do you suggest? Should I make it open source?

Collapse
 
lazerfx profile image
Peter Street

Security through obscurity is no security at all. Hide anything that has sensitive data (ignore / abstract / use configuration details for api keys and login and such - you do have a CI pipeline with secret handling, don't you?), but make the site public and open. You'll learn more from it too, because as people use it, they can submit bugs, issues and (hopefully) pull requests and ideas for improvements.

Collapse
 
godcrampy profile image
Sahil Bondre

Please make it open source. There is a lot to learn from the code as it is complete full stack. Regarding privacy, you can put the sensitive file into .gitignore like the ones with config data.

Thread Thread
 
mohsinht profile image
Mohsin Hayat

Okay, I'll update the files and make it public again. I'll do it ASAP.

Thanks

Collapse
 
fstrazzante profile image
Francesco

Hey Mohsin! Congrats nice work! I was surfing from mobile and I've found a nice and smooth UX! Nevertheless the idea the exchange task is really valuable! Could I ask you how did you build the messages section? Have you used any specific library?

Collapse
 
mohsinht profile image
Mohsin Hayat • Edited

Thank you so much Francesco. It really means a lot.

I designed and developed the messaging section from scratch. Although, the design inspiration is from Whatsapp and Facebook Messenger.

The fact that it looks good on Mobile is because I separated the mobile components in React and it worked flawlessly. The messages and notifications are sent/received using the npm library: Socket.io. Rest is all custom-built.

Collapse
 
fstrazzante profile image
Francesco

I see, thank you for the explanation! Great job, again!

Collapse
 
guptais profile image
Isha Gupta

Hi Mohsin, Congratulations, This is a cool idea and you have done a good job in executing it as well. Keep up the good work. Whats the idea behind earning points for people signing up for this? Where can they use the points or is it for rating purposes?

Collapse
 
mohsinht profile image
Mohsin Hayat

Thank you Isha for the feedback 👍

When you do a task, you'll receive Barter Points, you can use these points to add tasks on Taskbarter.
The points are just representing how much work you've done on Taskbarter and how much can you receive.

Collapse
 
lazerfx profile image
Peter Street

Was browsing through and registered. It's a nice site, but it's missing a few major parts to actually negotiating (Or, at least, it's not clear on how that would work). So someone submits a task - the only way I can see of getting any further information on this is to 'submit a proposal'. In reality, in its current state, the level of information is wildly insufficient to actually give any idea of how much time/effort would be involved, so further questions would be useful - and putting those questions into the question area would then benefit anyone who was looking at submitting that task.

It's a nice, clean site though, and it runs pretty well from a pure UI basis.

Collapse
 
mohsinht profile image
Mohsin Hayat

Very thoughtful feedback. Thanks a lot.

Yes you're right, the information is insufficient and the duration and complexity must be shown there. The problem is "Who's going to decide the complexity?". I think that the complexity is subjective and the task poster cannot say that this "This task is difficult" or "easy".

I'd appreciate if you help me brainstorm a solution. Should I put a dropdown at the "Add Task" part where user can specify the complexity (easy, medium, hard or something similar)? What would be a better approach?

Collapse
 
lazerfx profile image
Peter Street

That's a great question. I'd imagine something like a 'comments' section, a request for clarification or similar, with the ability to update the request and have an in-public clarification or RFC (Request for Comment) interaction.

My thoughts would be that if someone puts something exceptionally unclear (Example: "Graphics Design some Android App UI screens") which could be trivial (Put some forms together) or extremely complex (Design a UX to cover a multi-page interaction with good principles) then those considering doing it could interact with the author of the question to clarify it before committing to actually putting in the work.

Thread Thread
 
mohsinht profile image
Mohsin Hayat • Edited

Yes that's a good suggestion. I didn't think about RFC, brilliant idea 👍👍. I'll add this to my to-do list and start the implementation ASAP.

Users will be able to clarify the requirements in a publicly available comment section on the task.

Thanks a lot 👌

Collapse
 
mohsinht profile image
Mohsin Hayat

Repository now available publicly: github.com/taskbarter/main

Collapse
 
lucasqueiroz profile image
Lucas Queiroz

Really nice work! Congrats!!! The UI looks great as well!

Collapse
 
mohsinht profile image
Mohsin Hayat

Thanks a lot Lucas!! ❤️

Collapse
 
toledoroy profile image
Roy Toledo

Nice! How long did it take you?

Collapse
 
mohsinht profile image
Mohsin Hayat • Edited

Thanks Roy ❤️

I started at the start of April and it took about a month to complete.

I'm still improving the features and solving bugs. Here's the changelog: docs.taskbarter.com/about-release/...

My contribution graph:
Task Page

Collapse
 
sainig profile image
Gaurav Saini

Really nice work 👍. Love the idea of exchanging tasks.

Collapse
 
mohsinht profile image
Mohsin Hayat

Thanks Gaurav! ♥️

Collapse
 
ashrafhussain17 profile image
Ashraf Hussain

That's really a great project. I saw your code in github. I think I will be better if you make this project using microservice architecture for scalability purpose

Collapse
 
mohsinht profile image
Mohsin Hayat

Thanks Ashraf, really appreciate your suggestion. I'm working on micro-services in my other projects and will shift Taskbarter to micro-service architecture soon.

Collapse
 
toledoroy profile image
Roy Toledo

I decided to give it a shot and register, but I can't... :(
Always getting the same error (i think it was username)
I did try to login with FB, but it just brought me back to the registration page.

Collapse
 
mohsinht profile image
Mohsin Hayat

I'm so sorry for the bug. I'll look into this as soon as I can.