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
- Host: GitHub
- URL: https://github.com/william-fernandes252/mail
- Owner: William-Fernandes252
- Created: 2022-02-02T16:47:35.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-03-09T00:51:46.000Z (about 4 years ago)
- Last Synced: 2025-01-04T09:03:59.867Z (about 1 year ago)
- Topics: ajax, django, javascript
- Language: Python
- Homepage:
- Size: 708 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Mail
CS50w Mail Project.

## 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

Sent mailbox

Archived mailbox

Compose page

Reply page

Login page

Registration page
