{"id":23888418,"url":"https://github.com/william-fernandes252/mail","last_synced_at":"2026-04-16T03:32:20.429Z","repository":{"id":194635493,"uuid":"454857206","full_name":"William-Fernandes252/mail","owner":"William-Fernandes252","description":"A single page application for emails managment built with Django and Javascript ","archived":false,"fork":false,"pushed_at":"2022-03-09T00:51:46.000Z","size":725,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-12T02:51:42.110Z","etag":null,"topics":["ajax","django","javascript"],"latest_commit_sha":null,"homepage":"","language":"Python","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/William-Fernandes252.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}},"created_at":"2022-02-02T16:47:35.000Z","updated_at":"2023-12-28T15:31:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"ba440f6f-acc4-45f3-a62d-f3f54b6bea4b","html_url":"https://github.com/William-Fernandes252/mail","commit_stats":null,"previous_names":["william-fernandes252/mail"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/William-Fernandes252/mail","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/William-Fernandes252%2Fmail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/William-Fernandes252%2Fmail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/William-Fernandes252%2Fmail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/William-Fernandes252%2Fmail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/William-Fernandes252","download_url":"https://codeload.github.com/William-Fernandes252/mail/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/William-Fernandes252%2Fmail/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31870507,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ajax","django","javascript"],"created_at":"2025-01-04T09:00:04.911Z","updated_at":"2026-04-16T03:32:20.375Z","avatar_url":"https://github.com/William-Fernandes252.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mail\nCS50w Mail Project.\n\n![Inbox page](/screenshots/main.jpg)\n\n## Get Started\nThe course fourth project consists of a front-end for an email client that makes **asyncronous** calls to a **API** (implemented in **Django**) for sending and receiving of emails.\n\nIn adition to the features required in the course, I implemented some custom features, mostly to improve the UX with the interface. Those include:\n- A checkbox based menu, where the users can archive and delete **multiple** messages **all at once**;\n- A modification in the `PUT /emails/\u003cint:email_id\u003e` endpoint in order to allow the **deletion** of emails;\n- A pagination system, where only a certain number of emails are delivered in principle, and more loaded when the user scroll to the end of the page;\n- Also, for testint purposes, a wrote a script for the generation of random emails.\n\nIn this project, I could learn about\n- Design of **interactive and dinamic** user interfaces with **Javascript**;\n- Development of **Single Page Applications**, wich are frequently more reliable due to the dinamic update of the pages content that grants a smarter use of both client and server-side processing;\n- AJAX calls with the Fetch API;\n- Use of **event handlers** alongside with **DOM manipulation** to update the contents of a page and implement interactive interfaces;\n- Testing of user interfaces with the Selenium package.\n\nIn order to install and run it, follow the steps given bellow.\n\n## Prerequisites\n- Last versions of [Python](https://www.python.org/) and [Django](https://www.djangoproject.com/);\n\n## Installing and running\n- Clone this repository with `https://github.com/William-Fernandes252/Mail.git`;\n- Inside of `/Mail` run `python manage.py runserver`;\n- Finally, go to [http://127.0.0.1:8000](http://127.0.0.1:8000) in your browser.\n\n## Project snapshot\n\n\u003ch3 align=\"center\"\u003eEmail page\u003c/h3\u003e\n\n![Email page](/screenshots/email.jpg)\n\n\u003ch3 align=\"center\"\u003eSent mailbox\u003c/h3\u003e\n\n![Sent mailbox](/screenshots/sent.jpg)\n\n\u003ch3 align=\"center\"\u003eArchived mailbox\u003c/h3\u003e\n\n![Archived mailbox](/screenshots/archived.jpg)\n\n\u003ch3 align=\"center\"\u003eCompose page\u003c/h3\u003e\n\n![Compose page](/screenshots/compose.jpg)\n\n\u003ch3 align=\"center\"\u003eReply page\u003c/h3\u003e\n\n![Reply page](/screenshots/reply.jpg)\n\n\u003ch3 align=\"center\"\u003eLogin page\u003c/h3\u003e\n\n![Login page](/screenshots/login.jpg)\n\n\u003ch3 align=\"center\"\u003eRegistration page\u003c/h3\u003e\n\n![Registration page](/screenshots/register.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilliam-fernandes252%2Fmail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilliam-fernandes252%2Fmail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilliam-fernandes252%2Fmail/lists"}