{"id":46811908,"url":"https://github.com/aarrico/team-management-app","last_synced_at":"2026-03-10T08:23:06.586Z","repository":{"id":230133099,"uuid":"778578598","full_name":"aarrico/team-management-app","owner":"aarrico","description":"Django \u0026 React app for simple team management","archived":false,"fork":false,"pushed_at":"2024-04-09T16:47:11.000Z","size":319,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-06T12:28:44.334Z","etag":null,"topics":["django","python","react","sql"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/aarrico.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}},"created_at":"2024-03-28T01:33:46.000Z","updated_at":"2024-07-11T14:55:52.000Z","dependencies_parsed_at":"2024-04-08T20:52:19.358Z","dependency_job_id":"7c15f8bb-5e9c-422e-b6d9-dc47f0b9b06d","html_url":"https://github.com/aarrico/team-management-app","commit_stats":null,"previous_names":["aarrico/team-management-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aarrico/team-management-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarrico%2Fteam-management-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarrico%2Fteam-management-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarrico%2Fteam-management-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarrico%2Fteam-management-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aarrico","download_url":"https://codeload.github.com/aarrico/team-management-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarrico%2Fteam-management-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30328113,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["django","python","react","sql"],"created_at":"2026-03-10T08:23:06.028Z","updated_at":"2026-03-10T08:23:06.568Z","avatar_url":"https://github.com/aarrico.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Instawork Interview - Team Management App\n\nA CRUD application to manage simple data for a team.\n\n## Requirements\n\nRunning the application requires the following are installed and their executables installed on your machine's PATH:\n\n- Python 3.9+\n- Node 18+\n\n## Running the application\n\nThis assumes a unix based system. If on a Windows box [start here](#running-on-windows).\n\nIn a terminal from the project's root directory simply run:\n\n```bash\nsource run.sh\n```\n\nThis script will perform the following actions:\n\n1. Kill any existing processes on the ports used by the frontend and backend\n2. In a subshell, will create a venv and sqlite3 file if necessary, install requirements, and start the backend.\n3. In another subshell, will install frontend packages and start the frontend.\n4. It reports the process ID for each the backend and frontend after starting each.\n\n### Running on Windows\n#### Running the backend\nFrom the project's root directory,\n\n```powershell\ncd backend\npython -m venv venv\n.venv\\Scripts\\activate\npip install -r requirements.txt\npython manage.py migrate\npython manage.py runserver\n```\n\n#### Running the frontend\nIn a separate window from the backend, in the project's root directory,\n\n```powershell\ncd frontend\nnpm install\nnpm run start\n```\n\n## Stopping the application\n\nIn a terminal from the project's root directory, pass the `--stop` flag to the run script:\n\n```bash\nsource run.sh --stop\n```\n\nFor Window's systems, use ctrl-c to stop each process in the powershell window.\n\n## Running tests\n\n*** Unit tests are not complete in this project, I just did a sample of how to set them up.\n\nTo run both backend and frontend tests, in a terminal from the project's root directory run:\n\n```bash\nsource run.sh --test\n```\n\n\n## Viewing API Documentation\n\nWhile the backend is running, navigate to `http://localhost:8000/api/docs/` in your browser to view swagger docs for the API.\n\n\n## Notes \u0026 Design Considerations\n- I spent about 8-9 hours on this in total. I admittedly had some ramp up time while working with the backend since it had been some time since I used Django. I wanted to be sure I was still folllowing best practices.\n- I did not test the Windows instructions given above as I'm working on macOS, but wanted to add them for completeness to this document.\n- In larger React applications, I would use Redux to manage state. I thought it seemed like a lot of unneccessary boilerplate and setup for this size of a project, but also looking at my code now that I'm finished, it might not have been much different..\n- I added the profile pic src field to the database, but since there is no way to set it from the frontend in the project requirements, it is not passed back in the frontend's post request. Since I was using the MUI Avatar component, if it is passed an invalid path, it defaults to the icon specified in the requirements.\n- I would normally use Docker Compose to run the application locally, but in the interest of time and complexity the `run.sh` script was easier to throw together.\n- Since there is only one user, permissions on the backend were not implemented.\n- I only built in support for US based phone numbers. In a production app, I'd use a package to handle phone validation and save them in database stripped of unecessary characters with the country code prepended.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faarrico%2Fteam-management-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faarrico%2Fteam-management-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faarrico%2Fteam-management-app/lists"}