Code Monkey home page Code Monkey logo

softwarefans / astrophotogallery Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 28.37 MB

Gallery for astronomy photography

License: MIT License

C# 50.88% CSS 5.44% ASP 0.03% HTML 30.85% JavaScript 12.79%
astronomy gallery picture upload-pictures download-photos profile-picture administration-panel image-manipulation image-processing image-validation rating-stars rating-system picture-gallery picture-upload picture-viewer notifications paging carousel profiles user-profile

astrophotogallery's Introduction

Astronomy gallery

April 28th 2017:

The project was part of the course "Software technologies" in Software University Bulgaria. It has been developed by 2 software development students with less than a year experience. The inspiration came from a website for astronomy pictures: http://www.emilivanov.com/index2.htm. The rights to use the pictures for this project have been given by Emil Ivanov via email and the project will be presented to him too (after the defense of the project on April 29th). This project will not be used for any commercial purposes - it is a non-profit student project.

Due to the small experience of the developers when the project was created, it does not pretend to be perfect from software engineering point of view. However, many hours have been dedicated to it in order to work, look and feel good.

The beautiful pictures are separated by categories. They can be searched by tags or by categories.

More details and features:

  • General look: Bootstrap Solar theme is being used for the general look and style of the application(2-3 elements of it have been slightly customized - e.g. color, padding). The site is completely responsive on all types of screens(tested on smartphone, laptop, TV).
  • Authentication: Users can register and log in to the site with email (username) and password
  • Seed at first startup: Default administrator user account "[email protected]", roles "Admin" and "User" and category "Other" are being created in the database during the first start of the project
  • Upload: Pictures can be uploaded and saved in the project's database and file system (by a logged in user only)
  • Every picture is stored in subdirectory with name the name of its category in ~/Content/images/astroPics/ (e.g. /Content/images/astroPics/Galaxies)
  • Download: Pictures can be downloaded to a user's device
  • Categories: Every uploaded picture is put in a category:

Category menu

  • Edit: Pictures can be edited (title, description, category) by administrators or by the picture's uploader:

Edic pic view

  • Security: Categories can be created and edited/deleted only by administrators:

Admin panel view" align="middle

  • If a whole category is deleted then all of the pictures in that category are deleted too
  • Security: All post methods and their respective views have anti-forgery validation tokens check; the edition and deletion of pictures is allowed to authorized users only who are also the uploaders of the pictures
  • Tags: Every uploaded picture is required to have at least one tag for it:

"Tags" align="middle"

  • Display modes: The pictures can be displayed by tags, by categories and individually
  • Browsing: When looking at a picture the user can go to the next/previous picture in that category (if there is such):

Browse buttons" align="middle

  • Browsing: When looking at a picture the user can go to the category of the picture and see all pictures there
  • Browsing: When looking at a picture the user can see the user profile of the picture's uploader

Browse options

  • Rating system: Every picture can be rated by a user - 1 to 5 stars:

Rating" align="middle

  • A user can rate a picture only once; an uploader can't rate her/his own pictures
  • Validations and notifications: If an invalid data is entered by a user then a notification is shown saying what the error is. "Bootstrap Notifications" NuGet package is used for that feature.
  • Image validation: Image file extension and content validation - when a picture is being uploaded (valid for profile picture too) its content (the file header) is being checked in order to be determined if it is really an image. That way even if a user change the extension of a .txt file for example to .jpg the application will reject the file and won't store it anywhere.

Image validaiton message

  • Default redirect when a non-existent URL is entered - custom view for ERROR 404 is showed allowing the user to go back to the home page:

Error 404 custom view

  • If an unhandled exception occurres a custom view is showed allowing the user to go back to the home page
  • Search: Search feature for categories is included in the navigation bar
  • Search: Search feature for categories is included in the administrator panel
  • Search: Search feature for users is included in the administrator panel

Search bar

  • Paging: If the number of categories, pics, or users(in the admin panel) is higher than a certain value then they are being snowed on more than one page:

Paging

  • Slider/carousel: On the index page of the project there is a slider showing a picture from each possible category (e.g. one planet, one galaxy, one nebulae, one star cluster etc.). The pictures in the slider are static and not taken from the currently uploaded pictures by the users because there can be category with no pictures in it:

Image carousel

  • User profiles: Every user can edit her/his user profile โ€“ e.g. gender, city, country, birthday, profile picture:

User profile

  • The profile picture of a user is saved in a subdirectory with name the user's ID in directory ~/Content/images/profilePics/ (e.g. /Content/images/profilePics/f1a6ddc2-156e-4dbe-8f28-3f5a62946562)

  • The birthday in the user profile is being selected using jquery date picker:

jquery datepicker

  • Every user can hide/show her/his email address from her/his public user profile:

Email hide option

  • Every user can view other users' profiles and the pictures that they have uploaded
  • Administrator panel: Users in role "Admin" have access to administrator panel giving them rights to edit/delete user accounts (make them administrators too) and edit/delete categories
  • If a user is deleted all of her/his pictures are deleted too

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.