{"id":20493937,"url":"https://github.com/willtpwise/tech-front","last_synced_at":"2026-05-10T17:17:25.449Z","repository":{"id":87789237,"uuid":"120156688","full_name":"willtpwise/tech-front","owner":"willtpwise","description":"Email app","archived":false,"fork":false,"pushed_at":"2018-02-05T00:19:15.000Z","size":373,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-16T05:55:52.463Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://d3sg2sxohsb982.cloudfront.net/","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/willtpwise.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":"2018-02-04T05:08:12.000Z","updated_at":"2018-02-05T00:04:18.000Z","dependencies_parsed_at":"2023-07-21T20:18:43.669Z","dependency_job_id":null,"html_url":"https://github.com/willtpwise/tech-front","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/willtpwise%2Ftech-front","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willtpwise%2Ftech-front/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willtpwise%2Ftech-front/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willtpwise%2Ftech-front/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/willtpwise","download_url":"https://codeload.github.com/willtpwise/tech-front/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242075562,"owners_count":20068225,"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-11-15T17:37:36.371Z","updated_at":"2026-05-10T17:17:20.425Z","avatar_url":"https://github.com/willtpwise.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tech-front\n\n\u003e An email app, which accepts the necessary information to send emails.\n\n## Problem \u0026 Solution\nThis app solves the problem of an email client. It provides a simple, easy to use\ninterface with support for offline work.\n\nThe solution is split across two repos, this one (the front end) and the [back end](https://github.com/willtpwise/tech-back). It's a full-stack solution, however\nthe back end is in its infancy.\n\nThe front-end is built on a [Vue.js](https://vuejs.org/) framework; which makes\nuse of:\n1. [vuex](https://vuex.vuejs.org/en/intro.html) for state management\n1. [Element](http://element.eleme.io/) for UI\n1. [Jest](https://facebook.github.io/jest/) for unit tests\n1. [Nightwatch](http://nightwatchjs.org/) for E2E tests\n\nThe main architectural choice for Vue.js came down to the simplicity of the\nframework. I find it's the easiest JavaScript framework to read and write, so\nit seemed ideal for this app.\n\nThe choice for Vuex was simple. Vuex provided a\nscalable option for state management... At this point, the app can only send\nemails. With Vuex, scaling into a full-blown email client is within reach.\n\nElement was actually my second choice, originally I considered [Vuetify](https://vuetifyjs.com),\nbut decided against it as I felt it was oversized for what the project required\n(or could require in the future).\n\nJest and Nightwatch are fast and easy to write testing frameworks.\nI don't claim to be an expert in testing, but I found Jest has a particularly\neasy-to-write api for testing Vue components.\n\nOne feature within the app is the locally stored options for showing / hiding the 'cc'\nand 'bcc' fields. Ideally this feature would store the user's choices on the\nbackend (associated to their user account). However, since there are no user\naccounts at this point, I've decided to trade this off and use local storage\ninstead.\n\n## Features\n1. Multiple recipients (across To, CC \u0026 BCC)\n1. Offline sync (PWA)\n\n## Build Setup\nFirst clone, install and run the [backend](https://github.com/willtpwise/tech-back)\n\n``` bash\n# install dependencies\nnpm install\n\n# serve with hot reload at localhost:8080\nnpm run dev\n\n# build for production (minification is disabled)\nnpm run build\n```\n\n## Tests\nMake sure you have the [Java Developers Kit](http://www.oracle.com/technetwork/java/javase/downloads/index.html) installed before running the E2E tests.\n```\n# run unit tests\nnpm run unit\n\n# run e2e tests\nnpm run e2e\n\n# run all tests\nnpm test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilltpwise%2Ftech-front","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilltpwise%2Ftech-front","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilltpwise%2Ftech-front/lists"}