{"id":23449542,"url":"https://github.com/danielmahon/developer-code-test","last_synced_at":"2026-07-08T23:31:46.457Z","repository":{"id":145529776,"uuid":"294291270","full_name":"danielmahon/developer-code-test","owner":"danielmahon","description":null,"archived":false,"fork":false,"pushed_at":"2020-09-10T17:28:00.000Z","size":21195,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-15T18:57:48.619Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danielmahon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-10T03:20:30.000Z","updated_at":"2020-09-10T17:28:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"516d60bc-d617-4513-971b-c23a118f5bb9","html_url":"https://github.com/danielmahon/developer-code-test","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielmahon%2Fdeveloper-code-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielmahon%2Fdeveloper-code-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielmahon%2Fdeveloper-code-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielmahon%2Fdeveloper-code-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danielmahon","download_url":"https://codeload.github.com/danielmahon/developer-code-test/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248157024,"owners_count":21056938,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-23T23:19:40.208Z","updated_at":"2025-10-24T06:04:18.184Z","avatar_url":"https://github.com/danielmahon.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CMA Developer Code Test\n\nHello there! Thank you for allowing me the opportunity to show you just a \"smidge\" of what I can do. I decided to build this app in Flutter since it allows me to quickly produce something for iOS/Android/Web in the time allotted.\n\nI am just as comfortable however, building the same app in ReactJS or React Native. The project goal, audience, and accessability ultimately decide what distribution platform is best. For example, I would not use Flutter for an app designed mostly for web browser consumption, just as I would not use ReactJS for a mostly native application.\n\nDevelopment Environment:\n\n`macOS 10.15.5`  \n`Xcode 11.7`  \n`Android Studio 3.5.3`  \n`iOS Simulator iPhone 11 Pro (13.7)`  \n`Google Chrome Browser v85`\n\n## Prerequisites\n\n### Node\n\n`node@12.18.0`  \n`npm@6.14.4`  \nhttps://nodejs.org/en/\n\n`yarn@1.21.1`  \nhttps://classic.yarnpkg.com/en/docs/install#mac-stable\n\n### Python\n\nThis project was built using `venv` virtual environment and Python 3.8.5.  \nhttps://www.python.org/downloads/\n\nSetup `pip` and `venv` as defined here:  \nhttps://packaging.python.org/guides/installing-using-pip-and-virtual-environments/#installing-packages-using-pip-and-virtual-environments\n\nThen install the requirements:\n\n```bash\npip install -r requirements.txt\n```\n\nThe python script is set to use `#!./venv/bin/python` so you should NOT need to run `source env/bin/activate`.\n\n### iOS\n\nYou will need to have Xcode installed  \nhttps://apps.apple.com/us/app/xcode/id497799835?mt=12\n\n### Android\n\nYou will need to install Android Studio and a compatible API28+ virtual device (ie Pixel 3)  \nhttps://developer.android.com/studio\n\n### Web\n\nThis app was tested in Google Chrome but most modern browsers should work  \nhttps://www.google.com/chrome/\n\n### Flutter\n\nThis app is built with Google's Flutter UI and Dart runtime. You can find information on how to install here:  \nhttps://flutter.dev/docs/get-started/install\n\n## Quick Start (iOS/Web)\n\nI tried to make this as simple as possible to run.\n\nYou will need to launch an instance of the `iPhone 11 Pro` simulator first. If you do not have access to that specific simulator you have change the corresponding `run:ios` npm script in `package.json` to another available simulator.\n\nSee available devices by running `flutter devices`.\n\nReady, Set, Go!\n\n```bash\ngit clone https://github.com/danielmahon/developer-code-test.git\ncd developer-code-test\nyarn install\nyarn start\n```\n\n## Online Demo (Web)\n\nIn case you have issues configuring your development environment for Flutter I have hosted the web version of the app here:  \nhttps://developer-code-test.vercel.app\n\n## Manual Start (iOS/Web/Android)\n\nIf for some reason the `yarn start` command fails (I did not have time to test on multiple environments) you can run the commands manually and modify accordingly:\n\n```bash\n# Clone repo\ngit clone https://github.com/danielmahon/developer-code-test.git\ncd developer-code-test\n\n# Convert SQlite Database with Python\nsource env/bin/activate\npython python/main.py\n\n# Copy exported JSON to Flutter app\ncp db/cma-artworks.json flutter_app/assets\n\n# Move to Flutter app\ncd flutter_app\n\n# Install Flutter packages\nflutter pub get\n\n# Build Flutter generated files\nflutter pub run build_runner build --delete-conflicting-outputs\n\n# First, start the iPhone 11 Pro simulator\n# Run Flutter app in iOS simulator\nflutter run --debug -d 'iPhone 11 Pro'\n\n# First, start a API28+ Android Virtual Device\n# Run Flutter app in Android Virtual Device Manager (AVD)\nflutter run --debug -d 'AOSP on IA Emulator'\n\n# Run Flutter app in Google Chrome\nflutter run --debug -d 'Chrome'\n\n```\n\n# Project Requirements\n\n## Part 1: Data Transformation\n\nA 5-table SQLite database has been provided. The database contains a table of 100 artworks, a table of creators, a table of departments, and 2 linking tables containing the relationships between artworks, departments, and creators.\n\nUsing python, write a script that extracts the data from the tables and writes them into a JSON representation. Each object should contain all the information relevant to an artwork. Write the resulting data to a file.\n\n## Part 2: Front-End Data Presentation\n\nUsing the web or mobile framework of your choice, create a simple app that ingests the JSON file from Part 1 and displays all the information in a clear interface. Feel free to be creative and keep in mind that each artwork record will have a lot of data, so displaying all the data, all at once, will not result in a “clear interface”. Also provided is a folder of artwork images that are referenced in the artwork data. The images are named by the accession number of the artwork (a unique identifier assigned to an artwork when it is acquired by a musuem). These images should also be incorporated into the final app.\n\n## Completion and Submission\n\nCompleted work should include all code to arrive at the solution, plus all code, assets, and resources required to run the final result of part 2.\n\nPLEASE INCLUDE a detailed README containing instructions for running the project locally.\n\nAll completed work should be pushed to a public repo on GitHub.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielmahon%2Fdeveloper-code-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanielmahon%2Fdeveloper-code-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielmahon%2Fdeveloper-code-test/lists"}