In the last couple of years and especially in 2020, developers' community expressed the interest in creating automation in code development, improving the process in the industry. In June 2020, when gpt-3 was released as a beta version, many people registered to experiment with the service and create some amazing apps. So we decided to enter this trending challenge and create Hackwired.
What it does
The focus for this hack lays on the code generator for APIs, in the following points:
There is a form where the client fills the information about the project (name, language, service, description of the feature required) and then the user submits the request. The platform returns a version of code, regarding the specifications.
The user should be able to choose the platform in which the code to be generated and the type of storage with which the client would like to work. For example, the client wants to create an Flask backend code for Firebase DB. The essence of this project is to not restrict the user only to one type of platform and web service.
An interesting feature we considered is to see scalability predictions for our app, regarding the platform, language and the code produced by our service.
How I built it
We used GPT-3 in our Flask backend to generate the code. For frontend we developed with Vanilla. The scalability feature was developed with EazyML.
Challenges I ran into
The main challenge we ran into was the fact that, when gathering the team for the project, people were reluctant to join because of the complexity of the project. Also, the merging process was difficult due to our different development styles.
Accomplishments that I'm proud of
We managed to generate correct code for the languages mentioned above. Also, the fact that we created a scalability predictor is a strong point in our project.
What I learned
We learned to work with the frameworks mentioned and collaborate better in such a team of people with different backgrounds.
What's next for Hackwired
We intend to create a start-up from this project, as the first product. The service could be extended not only for development in software development companies, but also in education, for programming self-learning. We have a set of features we would like to implement in the feature, besides enabling more languages available for the code generation.
The app should take into account more inputs than just a text input from the page. Some nice features would be:
1. API documentation parsing (the user uploads a file with the description of the program and the services tries to generate the code required) 2. CSV/DB files upload (if the client already has a structure of an app in database and wants an app, they should be able to get an api using the structure already defined in the db) 3. Advanced debugging tools for the code generated (in the research I made a while ago, people expressed this request very often) 4. Send the code by email or download it from the website in a more complex structure than a single file approach, like in the current version 5. Hosting service for the app (in the far away feature) 6. Automatic comments and documentation for the code generated 7. Diagram analysis - like the ones made with StarUML (the service to analyse the diagrams and extract features from them - use cases, flowcontrol, service functionality, database structure, etc.).