Skip to content

About

Tweeter is a Django-based social media app where users can create, view, like, and comment on posts called Twits. Posts include text and images. The app uses AJAX for dynamic interactions, with user authentication and profile management features.

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

Tweeter (A Twitter Clone)

Author

David Alvarado

Description

This is a social website called Tweeter that will allow users to be able to make posts called Twits that other users can view. Users of the site will be able to make Twits that contain both text and pictures via a URL field to a picture. Users can also like and unlike Twits that other users make. As with all the assignments thus far, all views should be Class-Based Views. In short, there should be a lot of similarity with what we did with in-class-4.

Installing requirements.txt is a required package.

The program allows the following functionality:

  1. A Custom User model that adds a date of birth field.
  2. Full user authentication so that only authenticated users can use the site.
  3. Sign up and authentication forms / views so that users can authenticate with the system.
  4. Ability for users to be able to change and reset their password.
  5. A private profile page where a user can update details about themselves. (username, fname, lname, email, date of birth)
  6. A Dashboard for each user that will show all the Twits in the system listed with the most recent ones first.
  7. Pages / forms to be able to CUD a Twit. Update and Delete should be limited to the person that made the twit.
  8. New Twits should allow both text and URL for a picture. Image URL can then be used with a img tag to render the image.
  9. A Public Profile page for each user that shows all the Twits for that user.
  10. Ability for users to like or unlike a particular Twit that someone has made using AJAX.
  11. Ability for users to add a comment on Twits. This will only be create functionality.
  12. Tests to verify all functionality.

Database Requirements

Here are the requirements for the database in an ERD. There are other authentication related tables that I did not include but are provided via Django's auth system. The Users table is the only one that really needed to be shown since there are so many relations between Users and our other tables. There are no relations between the other authentication tables and our tables, which is why I omitted them.

NOTE: For the URL field on the Twit model, I am not using an ImageField. Those are extremely hard to properly set up. Instead, I am are simply loading images via a URLField. Meaning that the user will provide a URL to an image that already exists on the internet.

Database Entity Relationship Diagram

Screenshots

Here are some images of the non-admin pages that I made. This is more or less to give you an idea as to what the general concept is in case the written description is not clear.

Sign Up

Sign Up

Login

Login

Forgot Password

Forgot Password

Dashboard

Dashboard

Private Profile

Profile

Public Profile

Public Profile

Twit Create

Twit Creation

Twit Edit

Twit Edit

Twit Delete

Twit Delete

Comment Add

Comment Creation

Notes

All Views are Class-Based Views.

Any additional packages that you need to your project. Be sure to run pip freeze to dump the package information to requirements.txt

pip freeze > requirements.txt

Remember that you can see all available Bootstrap examples here:

https://getbootstrap.com/docs/5.3/examples/

In addition, you can find the documentation for Bootstrap here:

https://getbootstrap.com/docs/5.3/getting-started/introduction/

Quick Features Recap

Features

Models match ERD
Custom User Model
Full User Sign Up / Authentication
Password change / reset functionality
Personal Profile page. Update personal info Public Profile page. Twits from one user.
Dashboard feed of Twits from all users
CUD Twit
Allowing Text and Picture URL in Twit
Liking / Unliking a Twit
New Comment Form / Functionality
Navigation between pages
Crispy Forms
Styling / Bootstrap
Automated Tests
Heroku Deployment Files and Settings

Known Problems, Issues, And/Or Errors in the Program

Im aware of the following problems:

Profile (Save Changes Button) ---- Now working as intended, but stills fetches the data?

Password Reset (I wasn't able to use the email backend correctly, but still had the all password reset pages)

(Liking a twit without login in shows a error)

2 of my test don't pass really don't know why.

About

Tweeter is a Django-based social media app where users can create, view, like, and comment on posts called Twits. Posts include text and images. The app uses AJAX for dynamic interactions, with user authentication and profile management features.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages