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
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
Explore
Messages
Task Page
Work Timeline (zoomed out)
Feedback
Add New Task
Top comments (25)
That's a really cool project 😎. Is the code open sourced?
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?
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.
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.Okay, I'll update the files and make it public again. I'll do it ASAP.
Thanks
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?
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.
I see, thank you for the explanation! Great job, again!
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?
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.
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.
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?
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.
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 👌
Repository now available publicly: github.com/taskbarter/main
Really nice work! Congrats!!! The UI looks great as well!
Thanks a lot Lucas!! ❤️
Nice! How long did it take you?
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:
Really nice work 👍. Love the idea of exchanging tasks.
Thanks Gaurav! ♥️
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
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.
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.
I'm so sorry for the bug. I'll look into this as soon as I can.