GotGig (pronounce with a "?" as in, "GotGig?")
Anyone can do a gig and anyone can post a gig.
If you are a developer and would like to contribute or use this code, simply
-
Fork this Repo
-
Git clone this to your local device and open
-
At your terminal, write the command
yarn install -
And after that, at the terminal,
yarn start -
If you do not have mongodb, please download from https://robomongo.org/download, create a localhost connection and once you start adding users and gigs, the data should start adding as well.
-
This app requires a Cloudinary account. After signing up, you should be able to see 3 things that you'd need in your (hidden) .env file: ..* CLOUDINARY_URL ..* API_KEY ..* API_SECRET You'd need all three to start.
If you would like to contribute, please see below, at "Known Bugs" for some parts that you can contribute!
The above "Getting Started" instructions assume that you would have installed these globally
- Node js
- yarn
And that you have a text editor like Atom
Other than that, when you give the command yarn install, all the other dependencies (that you can see in package.json) will be installed locally.
The point of this app is so that Makers, Creatives and Talents (MCTs - shortened since I'd use it often) can find gigs, or short term jobs, that uses their skills.
There are a lot of clients out there that require specialised knowledge and skill in creative work. These clients unfortunately do not have the time to browse through facebook and go for all meetups to find the people that can help them.
Therefore, this app allows users to sign up, post gigs and also connect with the clients.
Rather than separate the users, MCTs vs Clients, I have made it such that anyone can be a gig-er or a gig-ee (think employer, employee). This is for our future development of the "volunteering" aspect of GogGigs. More to come soon.
- Robo 3T
- Cloudinary
- Express
- Handlebars
- Passport
- Bootstrap 4
- jQuery - jQuery for example is something you likely used
Wireframes (attempted)
Day 1 (evening):
- Came up with a basic ERD, Wireframe, List of Routes.
- Started with Sign up, Login Page and Linked Database of users
- Post on heroku.
Day 2:
- Created users and gigs models, routes, views, database. (Create and Read)
- Set up Authentication and sessions
- Fixed bugs in the routes and views
Day 3:
- Got stuck at sessions bugs, fixed after a long time
- Cleaned up nav bar and tried to implement CSS framework (took longer than expected)
- Linked Gigs to users
Day 4:
- Update feature of Users and Gigs
- Fixed bugs in search engine
- Added the dropdown Skills feature. (Made new db collection of skills)
Day 5:
- Delete feature of Users and Gigs
- Upoad profile image through Cloudinary
- Set up Heroku db, Cloudinary
- Made minor changes to Page design
Day 6 - 7 (sunday and monday):
- Edited Login and Sign up Page
- Updated ReadMe
- Edited gigs-card and profile card pages
Here are some parts that I know this code is lacking/or maybe just plain wrong. If you'd like, you can fix these!
- When searching for peeps, it won't work if the person doesn't have any profile data.
- When the gigs are searched, the gig.author.name is undefined :(. Smth wrong with fontend.js line 121
${gig.author}(tried gig.author.name but turns out undefined.) - signup_routes line 16. Currently, if the user does not input an image, the sign up won't work. Technically that's a good thing for this app but this app should at least give a msg to remind to add in image.
- frontend.js line 35.
If fixing bugs is not your cup to tea, you can also help in adding these features!
- Profile Image to be circular (Cloudinary has that feature apparently)
- Chatbox
- Payment feature
- Passport - linkedin, facebook, github
Here are the people that helped me in my greatest need
- Alex - for EVERYTHING. But most importantly on teaching me how to debug. The first day I could not even begin to think how to debug, but by the third day I could think.. logically? Anyway I managed to fix code after he taught me!
- Joseph - got stuck at Authentication, he got me unstuck
- Zhengyu - taught me how to pass two db.find() into one GET post. Would have wasted a lot of time if he didn't come in.
- Prima - debug sessions: friends and TA couldn't help but he found the problem: my code was all over the place.
- Asrar* - for keeping me sane and sending me home late at night after a long tiring day of coding
Some references that I implemented on my code:
- For handlebars "If a === b" . Refer to gig-card.handlebars line 11 http://doginthehat.com.au/2012/02/comparison-block-helper-for-handlebars-templates/

