Git Product home page Git Product logo

ileenf / rate-my-class Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 1.07 MB

An IOS app using Objective-C where users can write and read reviews for classes at UC Irvine with features to recommend classes and sort reviews based on quality. Made at FBU 2021. Utilizes PeterPortal API https://api.peterportal.org/

Objective-C 99.26% Swift 0.14% C 0.15% Ruby 0.45%
ios objective-c nlp natural-language-processing education

rate-my-class's Introduction

Original App Design Project - FBU Engineering 2021

Rate my Class

Table of Contents

  1. Overview
  2. Product Spec
  3. Wireframes
  4. Schema

Overview

Description

Allows users to rate and write reviews on the classes they took. User can browse through other people's reviews for classes. Users can find classes that fit their requirements and make better decisions when choosing which classes to take. Key features include class recommendations and sorted reviews based on quality.

Key Features

  • Sorting algorithm that utilizes Apple's Natural Language Framework to sort reviews based on quality. It calculates three factors, the relevancy of the review (keywords), the length/time posted/number of likes, and the tone of the review. NLP features including tokenization, sentiment analysis, embedding, and lemmatization were used. Tokenization and lemmatization to get the keywords in the review, sentiment analysis to determine the tone of the review, word embedding to determine the relevancy of the given review depending on its content.
  • Class recommendation algorithm that recommends classes to the user based on their major and selected interests. The algorithm retreives tthe top 10 classes tagged to the user's interests, adding that to the top 10 classes tagged to the top 5 interests based on their major.

App Evaluation

  • Category: Education
  • Mobile: Mobile is essential for instant reviewing of classes. Users can easily write reviews and read reviews from their phone.
  • Story: Allows users to be educated on the classes they choose to take. Helps users find classes that are a good fit for them personally.
  • Market: Students who attend University of California, Irvine can utilize this app.
  • Habit: Users can write and read reviews anytime. Peak use will likely be during class registration periods.
  • Scope: Currently the app only servers classes from one school. Can be expanded to serve students from multiple schools.

Product Spec

1. User Stories (Required and Optional)

Required Must-have Stories

  • User can login, logout, and signup
  • User can search for a class
  • User can view classes in the home feed
  • User can see the detailed view for a class and write a review
  • User can write a review for a class
  • User can view the classes they reviewed in their profile
  • User can filter classes using tags (stored in database)
  • User is recommended classes based on their interests and major

Optional Nice-to-have Stories

  • User can save a list of favorited classes
  • User can input all the classes they've taken and be shown only the classes they have prereqs for
  • Users can sort by rating, department, etc
  • Date and username is displayed on the reviews
  • Ratings show up as star symbols
  • Like, dislike, save reviews
  • Recently searched, datetime posted
  • Filter for search
  • Filter review comments for curse words
  • Reviews are sorted from higher to lower quality

2. Screen Archetypes

  • Login/logout screen
    • User can login
    • User can logout
  • Registration screen
    • User can create account
  • Stream
    • User can scroll through feed seeing classes with ratings
    • User can click on a class to see the details view
  • Profile screen
    • User can see account information
    • User can view their reviews

3. Navigation

Tab Navigation (Tab to Screen)

  • Home tab
  • Search tab
  • Profile tab

Flow Navigation (Screen to Screen)

  • Home -> Details
  • Search -> Details
  • Profile -> Details
  • Profile -> Tags

Digital Wireframes & Mockups

Schema

Models

Review

Property Type Description
comment String User's comments about class
rating Number User's rating of class overall out of 5
likeCount Number Number of likes
difficulty Number User's rating of class difficulty out of 5
class Pointer to another Parse Object The class that is being reviewed
author Pointer to another Parse Object The user who wrote the review

Class

Property Type Description
courseCode String The course code of class
rating Number Overall class rating
difficulty Number Overall class difficulty out of 5
department String Department class is apart of

User

Property Type Description
username String Account username
interestTags Array Array of tags user selects
major String User's academic major

Networking

List of network requests by screen

  • Home Feed Screen

    • (Update/PUT) Update class overall rating
    • (Read/GET) Query all classes
    • (Read/GET) Query recommended classes
  • Details View Screen

    • (Read/GET) Query all reviews for that class
    • (Read/GET) Query class ratings
    • (Update/PUT) Update reviews (after creating new review)
  • Create Review Screen

    • (Create/POST) Create a review for a class
  • Profile Screen

    • (Read/GET) User's major
    • (Read/GET) User written reviews
    • (Update/PUT) If user changes major
  • Tags Screen

    • (Read/GET) All tags, which tags are selected/unselected
    • (Update/PUT) When user changes selections of tags

Existing API Endpoints

Peter Portal API (courses)

HTTP Verb Endpoint Description
GET /all Gets all courses in course catalogue
GET /{courseID} Course department + course number (without spaces)

rate-my-class's People

Contributors

ileenf avatar

Stargazers

Mars avatar  avatar

Watchers

 avatar

rate-my-class's Issues

Details View

  • See class name, code, description, table view for reviews, ratings
  • Take average of ratings and difficulty and display it

Profile page

Has user's posted reviews and account information.

Review posting

Allow users to post a review. Rating, difficulty, comments. Have it appear in corresponding class table view.

Search page

search populates classes. when class clicked go to details view

Details View

View details of each class, with rating, difficulty, and reviews

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.