An open API service indexing awesome lists of open source software.

https://github.com/william-fernandes252/mail

A single page application for emails managment built with Django and Javascript
https://github.com/william-fernandes252/mail

ajax django javascript

Last synced: 6 months ago
JSON representation

A single page application for emails managment built with Django and Javascript

Awesome Lists containing this project

README

          

# Mail
CS50w Mail Project.

![Inbox page](/screenshots/main.jpg)

## Get Started
The 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.

In adition to the features required in the course, I implemented some custom features, mostly to improve the UX with the interface. Those include:
- A checkbox based menu, where the users can archive and delete **multiple** messages **all at once**;
- A modification in the `PUT /emails/` endpoint in order to allow the **deletion** of emails;
- 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;
- Also, for testint purposes, a wrote a script for the generation of random emails.

In this project, I could learn about
- Design of **interactive and dinamic** user interfaces with **Javascript**;
- 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;
- AJAX calls with the Fetch API;
- Use of **event handlers** alongside with **DOM manipulation** to update the contents of a page and implement interactive interfaces;
- Testing of user interfaces with the Selenium package.

In order to install and run it, follow the steps given bellow.

## Prerequisites
- Last versions of [Python](https://www.python.org/) and [Django](https://www.djangoproject.com/);

## Installing and running
- Clone this repository with `https://github.com/William-Fernandes252/Mail.git`;
- Inside of `/Mail` run `python manage.py runserver`;
- Finally, go to [http://127.0.0.1:8000](http://127.0.0.1:8000) in your browser.

## Project snapshot

Email page

![Email page](/screenshots/email.jpg)

Sent mailbox

![Sent mailbox](/screenshots/sent.jpg)

Archived mailbox

![Archived mailbox](/screenshots/archived.jpg)

Compose page

![Compose page](/screenshots/compose.jpg)

Reply page

![Reply page](/screenshots/reply.jpg)

Login page

![Login page](/screenshots/login.jpg)

Registration page

![Registration page](/screenshots/register.jpg)