Skip to content

nasaku898/Dark-Instagram

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SOEN341-InsertName

Authors

Simon Lim (tech lead) @nasaku898
Émilie Martin @emilie-martin
Daniela Venuta @daniela-venuta
Minh-Tam Do @mint47
Luc Nguyen @1999lucnguyen
Karin Kazarian @Karin-kazarian

Description

This is a social media project based on the main features of Instagram.
This project aims for us to learn the basics of the industrial software development process and was created for the course SOEN341 - Software Processes at Concordia University.

Objectives

This application is intended to implement the same core features of Instagram, such that the user is able to post a picture, follow another user, and be allowed to comment under posted pictures. The project guideline also called for the implementation of additional features.

Features

  • User Service (Registration, Login and Account Management)
  • Posting pictures (if registered and logged in)
  • Liking (posts & comments)
  • Following other users
  • Commenting (edit & delete)
  • Home feed (containing posts of followed users)
  • User statistics (followers, following, post count)

More about our core features

Technology

Frontend Backend
JavaScript Java
React Spring Boot
SCSS Maven
MySQL
Mockito

Note: Travis CI was used as Continuous Integration (CI) tool.


Screenshots

Registration

User registration

The client is prompted to create an account through the registration module.

Login

Login module

Once a user has created an account, they can log in through the login module.

Uploading a Picture

Picture upload

Once logged in, a user can upload a picture through the upload module.

User Feed

User feed ex1

The uploaded pictures will appear on the corresponding users' feed.

User feed ex1

The uploaded pictures are sorted right to left from most dated to most recent, organized into roughly equal-heighted columns.

Post Interaction

Post

Once posted, an uploaded picture can be interacted with in two distinct ways: commenting and liking.

Comments

To leave a comment, a logged-in user must simply input text in the bottom-right area designed to do so and, once complete, publish their comment to the post by clicking the POST at the bottom-right of the post itself.

Likes

If a user likes a post or a comment (from another user or their own) they can choose to 'like' it by clicking the moon icon. When a post or comment is liked, the icon will 'light up' and beside it, the number of likes will be displayed.

Comment edit

At any time, a logged-in user can edit or delete their comments, be it on their own posts on another users' post. If the post belongs to the logged-in user, they also have the possibility of removing comments left by other users.

Account Management

Account management

Once logged in, a user can edit their own information, from profile to account. This encompasses display name, biography, email, password, and birthday.

Following

Follow/Unfollow

Once logged in, a user can follow another user. To do so, they must search a pre-existing user-name in the search bar and hit the Search button. If the username does not exist an error will pop up stating so, otherwise the specified user account will be shown. If the account isn't already being followed by the logged in user, the user will be able to follow the specified user. Otherwise, they will be able to unfollow them. The follower count will be adjusted accordingly. It is to note that is a user attempts to follow themself, an error will pop up.

Test

Tests

All written tests succesfully pass when the code is run


Details on technology used

React

React is a JavaScript library that boasts component reusability and is greatly used for frontend purposes.
For this project, React was bootstrapped with Create React App.
More about React
More about Create React App

Start up this project

Running the npm start command will automatically start the application and open it in the user's browser. If the project doesn't immediately open the application page, it can also be accessed through localhost:3000.

Run the tests

Running the npm test command will run all test suits in 'watch mode'. Watch mode implies that when any part of the code is modified, the modified test suite will re-run. Read more

Build the app

Running the npm build command builds the app for production. It correctly bundles React in production mode and optimizes the build for the best performance. Read more

Spring Boot

Spring Boot is an open source Java-based framework used to create a microservice. It is developed by Pivotal Team and is used to build stand-alone and production ready spring applications.

Travis CI

Travis CI is a hosted continuous integration service used to build and test software projects hosted at GitHub.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 56.9%
  • JavaScript 31.9%
  • CSS 10.3%
  • HTML 0.9%