Tom-Nagy / together-hackathon-june-22

Connect With is a hackathon project that promotes togetherness and community. It is a blog like web application where user can share experiences, ask and discuss anything and connect.

Home Page:https://connect-with.herokuapp.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Connect With

Mockup

Visit the live Website : Connect With ➡️

Table of Content

Project

Project Goals

Connect With is a web application where users can connect and talk or share experiences. This project promotes togetherness and community. It can be difficult sometimes to talk about something when we don't feel that the person with whom we share does not understand or share the same ideas. Though it is a necessity as human to connect and belong. Connect With provides a safe place where everyone is welcome and can share, experience and participate in the community.

Unregistered user have a read only access and if they want to participate to discussions or ask question, they will have to registered.

Developer and Business Goals

  • Develop a viable web application.
  • Develop a user-friendly application.
  • Develop a web application with space for improvement and optimization.
  • Promote wellness and togetherness.
  • Provide a safe platform where communities can share and talk freely.

🔙 Table of Content

UX

Audience definition

  • The targeted audience is You, Me and Everyone else!

User stories

  1. As a user I want a user-friendly, simple and interactive website.
  2. As a user I want to be able to access this application on different device with the same experience.
  3. As a user I want to find out what is the purpose of the website easily.
  4. As a user I want to be able to create a discussion group/room.
  5. As a user I want to be able to look for a discussion group/room.
  6. As a user I want to be able to share my experiences.
  7. As a user I want to be able to read the community experiences.

🔙 Table of Content

Fonts

Considering the targeted audience, the sans serif type of font is the more appropriate because it is most often associated with simplicity and straightforwardness.

The website will use well known and popular font that are used online in order to bring to the user a "feeling of knowing".

  • Poppins for headings.

  • Lato for main content.

Sans serif will be use as a fall back if the fonts do not load. It is common as the main typographies are sans serif type.

Icons

  • Some Font Awesome icons will be part of the website for better UX.
  • The favicon was created from favicon.io.

Favicon

Colors

Color palette

The colours chosen for the website are simple.

  • #325663
  • #b1e9fc
  • #634628
  • #b08e6a
  • #6a9eb0

Adobe Color explore was used to find the colour scheme with the community keyword. Compatibility and accessibility are valid and the color scheme and swatches are said color-blind safe by the accessibility tools.

Styling/Feeling

The feel of the website is welcoming and simple to provide a quick access and learning process. It makes users comfortable.

Audio/Video/Images

There is a hero image to give some weight to the landing page and pictures in the coming event from the events.

🔙 Table of Content

Wireframes

Site map

Home page Profile page About-us page Chat-room page mobile page

🔙 Table of Content

Features

  • For consistency across the website the navigation is present on all pages.

    • Navigation bar
  • It is important to note that other functionalities are available through the url/admin accessing Django admin interface.

Profile

Profile allows users to customize their profile information. When a user sign up, a profile is automatically created so the post are published under the user username.
If a User changes its profile information accessible from the profile page and makes it public, then his information are displayed when posting a comment (i.e. picture, username), otherwise only the username is displayed and accessible.
User profile information will be accessible as a popup upon clicking on the user username displaying picture, username, email and about me profile information.

Chatrooms

  • The chatroom present all the different chatrooms or discussion subject present on the website.

  • Users you can browse to see the different rooms define by a Name and a subject.

    • Chatrooms
  • There is the possibility to create a chatroom when registered logged in.

    • Create chatroom

Discuss

  • When selecting a chatroom the user is directed to the discussion page.

  • Users can browse the discussion, the latest comment being at the bottom of the page.

  • Users can participate in the discussion when registered logged in.

    • Discussion

🔙 Table of Content

Future features to implement

  • Contact us form. Add a form for user to be able to reach out to the website owner.
  • Swear words checker. For a friendlier and safer space we will implement in the future a word checker to prevent abuse posting.
  • The possibility to close or silence a discussion automatically that was not active for a period of time. Those chatrooms would be accessible with a past chats button.
  • Search/sort functionality to be able to sort the chats and/or to look for specific subjects.
  • Favorite. Create a favorite page where registered user can see their favorite discussion.
    • Having an option to save some comment (not only the whole chat).

🔙 Table of Content

Database

As a framework Django works with relational databases.

  • During development, sqlite3 was used. It is the database provided by Django and only use for development.
  • For Production, Postgres is used. It is the database provided by Heroku when deploying the website live.

Database design

  • Profile Model
    • Within the profile app, the UserProfile model define how the data will be stored for a user.
Name Key in db Validation Field Type
chatroom_id chatroom_id primary_key=True AutoField
user user on_delete=models.CASCADE, related_name='user_profile' ForeignKey to User
username username max_length=50, blank=True, null=True CharField
about about max_length=2000, blank=True, null=True TexField
image image blank=True, null=True ImageField
make_public make_public default=False BooleanField
  • Chatroom Model
    • Within the chatrooms app, the Chatroom model holds the data needed for different chatrooms.
Name Key in db Validation Field Type
chatroom_id chatroom_id primary_key=True AutoField
name name max_length=20, blank=False CharField
subject subject max_length=145, blank=False, null=False CharField
date_created date_created auto_now_add=True AutoField
  • Comment Model
    • Within the chatrooms app, the Comment model holds the data needed for different comments in each chatroom.
Name Key in db Validation Field Type
comment_id comment_id primary_key=True AutoField
chatroom chatroom on_delete=models.CASCADE, related_name='comment' ForeignKey to Chatroom
user user on_delete=models.CASCADE, related_name='comment' ForeignKey to User
content content blank=True, null=True TextField
date date auto_now_add=True DateTimeField

Technologies Used

Programming Languages

This project was developed using:

  • HTML
  • CSS
  • Python
  • Jinja templating language.

Frameworks, Libraries and Programs

🔙 Table of Content

Deployment

Deployment information are published in a separate file for better readability. Please see DEPLOYMENT.md

This project is developed on Gitpod Workspaces IDE (Integrated Development Environment) committed and pushed to GitHub, to the project repository using Gitpod Command Line Interface (CLI) with Git version control.

It is a team project that was build by creating pull request in order to merge the code with main. The main branch has been protected and pull request have to be reviewed before to be merged.

🔙 Table of Content

Testing

Testing information are published in a separate file for better readability. Please see TESTING.md.

🔙 Table of Content

Credit

Content

About

Connect With is a hackathon project that promotes togetherness and community. It is a blog like web application where user can share experiences, ask and discuss anything and connect.

https://connect-with.herokuapp.com/


Languages

Language:HTML 56.3%Language:Python 32.7%Language:CSS 7.1%Language:Dockerfile 3.9%Language:Procfile 0.0%