Skip to content

A social network for students from students.

Notifications You must be signed in to change notification settings

drudilorenzo/univers-it

 
 

Repository files navigation

Univers-it

PHP Laravel HTML5 TailwindCSSJavaScript jQuery

Univers-it is a social network inspired by:

  • Reddit: users will post in groups
  • Blind: only university students will be able to register.

Developed by:


  1. Requirements
  2. Features
  3. How-to-use

Requirements

The project was assigned for the "web technologies" course with the following requirements:

  • Design: max 3 pts
  • Registration/Login: max 3 pts
  • Feed: max 4 pts
  • Posts: max 3 pts
  • Comments: max 3 pts
  • Follow: max 3 pts
  • User page: max 4 pts
  • Notifications: max 5 pts
  • Extra: max 4 pts

Features

  1. Registration & Login
  2. Feed
  3. Posts
  4. Comments
  5. Follow
  6. User Page
  7. Notifications
  8. Extra

Registration & Login

As stated before, only university students will be able to register to the website.
This will be enforced at registration time forcing the user to use an istitutional email, we currently accept the following ones:

  • University of Bologna: @studio.unibo.it
  • University of Trento: @studenti.unitn.it

The registration process includes a verification email.

Feed

Once a user logs in he'll be shown the latest posts from users and groups that he follows.
A user who is not logged in can only see some random posts without the possibility to react or comment to it.

Posts

Users can post only inside a group.
Posts are made of:

  • Title
  • Description (optional)
  • Image (Optional)

Comments

Users can comments posts from the post's page, each comment can be a reply to a previous one.

Follow

Users can follow other users and groups. Posts in followed groups and from followed users are shown in the feed.

User page

From this page users will be able to:

  • See all the posts of a user.
  • Follow the user.
  • See all the followers of the user.
  • See all the users that the user is following.

Notifications

The application will send notifications to its users for the following events:

  • New post from a followed user.
  • New comment under a post.
  • New follower.
  • New reaction to a post. Each notification will both be shown in the website and be sent as an email (if selected by the user).

Extra

We decided to add the following things that were not in the assignment:

  • Groups: a place where users can post.
  • Reactions: users can like or dislike a post.
  • Replies to comments.
  • Toggle email notification: user's can decide which notifications they want to receive via mail.
  • Secure password store.
  • Ajax
  • Laravel

How-to-use

Prerequisites

  • Git
  • Docker

Installation

Step 1:

Clone the repo and open it:

    [email protected]:FiloSanza/univers-it.git && cd univers-it

Step 2:

Run:

docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/var/www/html \
    -w /var/www/html \
    laravelsail/php81-composer:latest \
    composer install --ignore-platform-reqs

Step 3

Write you own .env file (See an example).
You can also copy our with bash cp .env.example .env

Step 4

Run:

    ./vendor/bin/sail up

Step 5

In a new shell run:

    docker exec -it univers-it-laravel.test-1 /bin/bash

Step 6

Inside the container's shell opened in the previous step run:

   npm install --save && npm run dev

Step 7

Go to localhost in your browser.

To see emails you can use Mailhog (localhost:8025).

About

A social network for students from students.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 70.3%
  • Blade 25.6%
  • JavaScript 3.7%
  • Other 0.4%