Inspiration
When we sat down together and tried to figure out what project we wanted to make, we found ourselves looking at previous personal projects for inspiration. That was when we realized that how valuable this kind of inspiration can be. We know that not everyone is lucky enough to have friends that are into computer science who they can brainstorm with, so we aimed to give those people a chance to both inspire and be inspired by sharing both project prompts as well as their finished projects.
What it does
Our site allows people to share their projects and project ideas in order to inspire others. We have a large collection of content that grows as more users add to it. User can also search this collection to find a project that they will be passionate about.
How we built it
Our project can be divided into three parts: The website, server, and database.
Our website is made with basic html, css, and javascript. We avoided frameworks and tried to keep it simple here to promote collaboration.
Out server is hosted for free at glitch.com(made by the owners of stack overflow) and is written in Node.JS. This server hold our live collection of prompts and uses SQL to query our database when needed.
We used a MySQL database hosted on a private bluehost.com domain. The reason we needed a database was that with users uploading images the server would quickly run out of memory.
Challenges we ran into
- the first challenge we ran into was how we would effectively collaborate on this project. Many of us were new to git but luckily we had a very experienced team member who gave us all a crash course.
- then came the issue of generating and tagging a huge collection of project prompts. This was solved mostly by out team having the patience to manually enter data for a while. We did develop a small python app to assist in this.
- we also ran into CORs policy problems we had to learn about, this was solved with local proxies and temporary browser configurations.
- Another challenge was configuring the database which we were all new to.
- glitch.com rotates IPs for projects and bluehost databased work on a whitelist system, so we had to do a little digging in the remote glitch terminal to find the correct IP to whitelist at the time. This will have to be done regularly until we find a better host for NodeJS projects.
- finally we had some trouble with javascript converting images to base64 and then reading base64 images in from the database.
Accomplishments that we're proud of
- We had great collaboration and learned so much about all the tech involved here, these git skills will come in very handy and we also learned a bit about project architecture.
- we chose a very ambitious project that has a front end with multiple pages, a server, and a database but with almost non stop coding since we got the green light to start working, we were able to make it happen.
What we learned
- git basics
- sharpened our html, css, and javascript
- how database queries work and SQL
- server architecture and REST APIs
- some UI design tricks
- how quickly progress can be made with an organized team
What's next for ideaspark
- Before really sharing our project with the public we need to do a little more work to avoid SQL injection and XSS.
- Adding profiles and being able to edit your submissions. Also adding bookmarking to project and prompts you want to get back to.
- growing our collection of prompts and projects to inspire more people.
Log in or sign up for Devpost to join the conversation.