First Gen Pokedex

Find out your First Gen Pokemon details, search it by the name

Usage

Refer to db/README.md to find out how to initialize database

Pokedex

Usage:
  go run . csv <csvfile> <PokemonName>
  go run . sqlite3 <dbfile> <PokemonName>
  go run . postgres <PokemonName>
  go run . -h | --help

Options:
  -h --help     Show this screen.

The Challenge

The purpose of the challenge is for you to demonstrate your Golang skills. This is your chance to show off everything you've learned during the course!!

You will build and deliver a whole Golang project on your own. We don't want to limit you by providing some fill-in-the-blanks exercises, but instead request you to build it from scratch. We hope you find this exercise challenging and engaging.

The goal is to build a REST API which must include:

  • An endpoint for reading from an external DB or API
    • Write the information in a CSV file
  • An endpoint for reading the CSV
    • Display the information as a JSON
  • Unit testing for the principal logic
  • Follow conventions, best practices
  • Clean architecture

Requirements

These are the main requirements we will evaluate:

  • Use all that you've learned in the course:
    • Best practices
    • Go basics
    • HTTP handlers
    • Error handling
    • Structs and interfaces
    • Clean architecture
    • Unit testing
    • CSV file fetching

Getting Started

To get started, follow these steps:

  1. Fork this project
  2. Make your project private
  3. Grant your mentor access to the project
  4. Commit periodically
  5. Apply changes according to the mentor's comments
  6. Have fun!

Deliverables

We provide the delivery dates so you can plan accordingly; please take this challenge seriously and try to make progress constantly.

It’s worth mentioning that you’ll ONLY get feedback from the review team for your first deliverable, so you will have a chance to fix or improve the code based on our suggestions.

For the final deliverable, we will provide some feedback, but there is no extra review date. If you are struggling with something, contact your mentor and peers to get help on time. Feel free to use the slack channel available.

First Deliverable (due November 22th 23:59PM)

Based on the self-study material and mentorship covered until this deliverable, we suggest you perform the following:

  • Select architecture
  • Read a CSV or DB
  • Handle Errors for CSV/DB (not valid, missing, incorrect connection)
  • Use best practices

Note: what’s listed in this deliverable is just for guidance and to help you distribute your workload; you can deliver more or fewer items if necessary. However, if you deliver fewer items at this point, you have to cover the remaining tasks in the next deliverable.

Final Deliverable (due December 13th 23:59PM)

  • Store read CSV/DB in a structure
  • Loop structure and print data
  • Send to own API data read
  • Add unit testing
  • Refactor

Important: this is the final deliverable, so all the requirements must be included. We will give you feedback and you will have 3 days more to apply changes. On the third day, we will stop receiving changes at 11:00 am.

Submitting the deliverables

For submitting your work, you should follow these steps:

  1. Create a pull request with your code, targeting the master branch of the repository golang-bootcamp-2020.
  2. Fill this form including the PR’s url
  3. Stay tune for feedback
  4. Do the changes according to your mentor's comments

Documentation

Must to learn

Self-Study Material