{"id":18266119,"url":"https://github.com/alexandrabaturina/mail","last_synced_at":"2025-10-19T14:36:46.508Z","repository":{"id":119258563,"uuid":"290271405","full_name":"alexandrabaturina/mail","owner":"alexandrabaturina","description":"Front-end for an email client that makes API calls to send and receive emails","archived":false,"fork":false,"pushed_at":"2020-09-03T04:18:59.000Z","size":41,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-14T20:39:28.173Z","etag":null,"topics":["api","django-backend","javascript-frontend"],"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/alexandrabaturina.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-08-25T16:52:03.000Z","updated_at":"2020-10-08T22:31:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"e9c24cc5-172a-4cae-ac95-0b46b657cade","html_url":"https://github.com/alexandrabaturina/mail","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/alexandrabaturina%2Fmail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandrabaturina%2Fmail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandrabaturina%2Fmail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandrabaturina%2Fmail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexandrabaturina","download_url":"https://codeload.github.com/alexandrabaturina/mail/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247958722,"owners_count":21024829,"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":["api","django-backend","javascript-frontend"],"created_at":"2024-11-05T11:21:52.678Z","updated_at":"2025-10-19T14:36:41.471Z","avatar_url":"https://github.com/alexandrabaturina.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project 3: Mail\n## Overview\nThe current repo contains project called **mail** which is a front-end for an email client that makes API calls to send and receive emails.\n\nThis project is built as Project 3 for [CS50W 2020 course](https://courses.edx.org/courses/course-v1:HarvardX+CS50W+Web/course/) provided by edX platform.\n## Features\nThe project meets the following requirements.\n* **Send Mail**\n  \n  * When a user submits the email composition form, the email is sent (this option is built with JavaScript).\n  * A ```POST``` request is made to ```/emails```, passing in values for ```recipients```, ```subject```, and ```body```.\n  * Once the email has been sent, the user’s ***Sent*** mailbox is loaded.\n  \n* **Mailbox**\n\n  * When a user visits their ***Inbox***, ***Sent*** mailbox, or ***Archive***, the appropriate mailbox is loaded.\n  * A ```GET``` request to ```/emails/\u003cmailbox\u003e``` is made to request the emails for a particular mailbox.\n  * When a mailbox is visited, the application first queris the API for the latest emails in that mailbox.\n  * When a mailbox is visited, the name of the mailbox appears at the top of the page (this part is done in starter code).\n  * Each email is rendered in its own box  that displays who the email is from, what the subject line is, and the timestamp of the email.\n  * If the email is unread, it appears with a white background. If the email has been read, it appears with a gray background.\n  \n![image](https://user-images.githubusercontent.com/53233637/92069814-3714af80-ed5f-11ea-8c54-730cb5709b0d.png)\n  \n* **View Email**\n\n  * When a user clicks on an email, they are taken to a view where they see the content of that email.\n  * A ```GET``` request is made to ```/emails/\u003cemail_id\u003e``` to request the email.\n  * The application shows the email’s sender, recipients, subject, timestamp, and body.\n  * Once the email has been clicked on, it is marked as read. A ```PUT``` request is made to ```/emails/\u003cemail_id\u003e``` to update whether an email is read or not.\n  \n![image](https://user-images.githubusercontent.com/53233637/92069896-7cd17800-ed5f-11ea-8c11-33c77e8452d1.png)\n\n* **Archive/Unarchive**\n\n  * Users are allowed to archive and unarchive emails that they have received.\n  * When viewing an ***Inbox*** email, the user is presented with a button that lets them archive the email. When viewing an ***Archive*** email, the user should is with a button that lets them unarchive the email. This requirement does not apply to emails in the ***Sent*** mailbox.\n  * A ```PUT``` request is made to ```/emails/\u003cemail_id\u003e``` to mark an email as archived or unarchived.\n  * Once an email has been archived or unarchived, the user’s ***Inbox*** is loaded.\n  \n![image](https://user-images.githubusercontent.com/53233637/92070059-e6518680-ed5f-11ea-83b6-d4e529ef478b.png)\n  \n* **Reply**\n\n  * Users are allowed to reply to an email.\n  * When viewing an email, the user are presented with a “Reply” button that lets them reply to the email.\n  * When the user clicks the “Reply” button, they are taken to the email composition form.\n  * The composition form is pre-filled with the ```recipient``` field set to whoever sent the original email.\n  * The ```subject``` line is pre-filled. If the original email had a subject line of ```foo```, the new subject line should be ```Re: foo```. (If the subject line already begins with ```Re: ```, no need to add it again.)\n  * The ```body``` of the email is pre-filled with a line like ```\"On Jan 1 2020, 12:00 AM foo@example.com wrote:\"``` followed by the original text of the email.\n\n![image](https://user-images.githubusercontent.com/53233637/92070253-60820b00-ed60-11ea-9e2a-7764aec78b8d.png)\n## Dependencies\nThe app is built using *Django* framework. To install Django via terminal, use the following command.\n```sh\n$ pip3 install Django\n```\n## Getting Started\n### Running Locally\nTo run **mail** locally,\n1. Clone this repo.\n2. ```cd``` into project directory.\n3. Start the Django web server.\n```\n$ python manage.py runserver\n```\n4. Access ```127.0.0.1:8000``` in your browser.\n### Resetting a Database\nThe repo contains test database. To reset database,\n1. Delete **db.sqlite3** file.\n2. Run the following command.\n```sh\n$ python manage.py flush\n```\n## Authors\nAlexandra Baturina\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandrabaturina%2Fmail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexandrabaturina%2Fmail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandrabaturina%2Fmail/lists"}