Inspiration

For our first Hackathon, we wanted to create a project that would let us focus on developing our programming and teamwork skills. We decided to reverse-engineer an existing product: the citation generator. Reverse-engineering meant that everyone on the team had a clear image of what the finished product should look like. It also simplified the requirements-elicitation phase of the engineering process, which meant that we could get straight to work!

What it does

CiteMe is a bibliography tool with online and offline capability. It generates APA7-compliant citations and offers support for three difference resource types: books or Ebooks, web resources, and journal articles. Currently, CiteMe consists of the following independent components:

  • A web interface mockup
  • An offline GUI mockup
  • A functional command-line program

How we built it

The majority of this project is created using the Python programming language. The GUI mock-up was created by Johann using Tkinter. Sumin created a web interface mock-up using Figma. Madison and Bilal created Python functions to generate citations based on user input, and Madison created a CLI version of the CiteMe program.

Challenges we ran into

Our team is geographically spread across the world, with members in Ontario, Manitoba, Venezuela, and South Korea! Timezones and virtual communication were a fun Depending on what information is available, the format of the final citation differs. For example, if there are no authors, then the citation should instead begin with the title of the resource used. This required a lot of conditional execution and text processing to achieve the correct citation formats! Also, did you know that things can have multiple authors? And that they can have different numbers of authors?? Pretty inconvenient! Successfully integrating the citation functions with the Tkinter interface proved to be a bit of a challenge, and we're expecting to achieve this in a future version of CiteMe!

Accomplishments that we're proud of

We were able to successfully get a working command-line version of our project, which we're thrilled about!! Madison also learned how to use kwargs to accept a variable number of author names! Johann gained a lot of proficiency working with Tkinter to create an original GUI that met the project requirements.

What we learned

Our first Hackathon proved to be an amazing learning experience! Being able to work on a project with others was challenging and new, but also very rewarding. Even just being able to see your teammates on camera working alongside you was encouraging and motivating! We learned a lot about the reverse-engineering process and the importance of planning and communication. The process of working on an actual project is completely different than working through tutorials. While it comes with challenges, such as making sure that your code doesn't break if someone doesn't have a middle name, it is also far more rewarding!

What's next for CiteMe

Built With

Share this project:

Updates