Expensify is an web app to record and manage your expense. It allows users to add, edit and remove expenses, and to view the history expenses in different ways.
The frontend of the app is built with React and Redux. Google Firebase is used to handle data persistent and user authentication. The server is built with Express.
All components are tests with a test suite build with Jest and Enzyme. The project is currently hosted on Heroku.
YelpCamp is a Yelp-ish website for campgrounds. It allows authorized users to manage campgrounds information such as location, price and descriptions. Registered users are available to make comments to campgrounds.
The RESTful backend API is built using Express, a web application framework for Node.js, and various third party libraries (Mongoose, Passport, etc.). The templating langurage used is EJS. The data are stored in non-relational MongoDB database. This app has been deployed on Heroku.
Django Blog is an blog application built with Django framework. It allows authorized users to publish and manage posts with backend forms. Readers can register on the website via a two step activation process, and then make comments to posts. All data are stored in MySQL database.
The application has many features, such as markdown support, customizable avatar, threaded comments, RSS subscription, full text search, etc.
The Django Blog App has been deployed on a Linux VPS (this) server.
CUTransit is an Android app that provides real-time MTD (Mass Transit District) bus information in Champaign-Urbana Area. With this app, you will never miss your bus again!
The app stores bus stops data in the local database, and fetch real-time bus arrival data using CUMTD API. The incoming bus information are shown with route colors, and automatically updated. The app allows user to maintain their favorite stops. It also uses Google Location Service to get the current location and shows nearby stops for convenience. A simple widget is provided to list user's favorite stops on the desktop of the cellphone to makes it much easier and faster to get the bus information at these stops.
ConFusion is demo website of a restaurant. It is a single page application (SPA) built using front-end framework AngularJS. The project is built by Gulp.
This is an Android app that allows users to discover the most popular movies playing. The data are fetched from the internet with theMovieDB API, and stored in local database. The posters of popular movies are shown when the app starts, and clicking on the poster starts a page showing the detailed information of the movie. Users can view and play trailers, as well as read the reviews of selected movie in the detailed page. Users can also mark their favorite movies, and set different sorting methods.
This project is a demonstration of building a single page application using frontend framework Knockout. It is an interactive map of Asian restaurant in Champaign-Urbana Area. The app makes asynchronized AJAX call to Yelp API to fetch restaurant rating and displays on the map. It also provide basic filter functionality to select restaurant. The app is built using Grunt. Bootstrap is used to make the page responsive.
It is a clone of the classic arcade game called Frogger. The game is built using basic front-end development skills. The images are added using HTML5 canvas methods. Keyboard input is handled by event listener.
This is an demo application that provides a list of items within a variety of categories, and provides a user registration and authentication system. Google+ API is used in implementing the authentication mechanism. Registered users will have the ability to post, edit and delete their own items. HTTP methods are mapping to CRUD operations at the backend using Flask. SQLite is used to built the database, and SQLAlchemy provides efficient and high-performing database access with Python.
This is a platform-agnostic 15-puzzle game API using Google App Engine backed by Google Datastore. The 15-puzzle is a sliding puzzle that consists of a frame of numbered square tiles in random order with one tile missing. The object of the puzzle is to place the tiles in order by making sliding moves that use the empty space. This API allows many different games to be played by many different users at any given time. Each game can be retrieved or played by using the path parameter. The API with endpoints allows anyone to develop a front-end for the game.
This is a demo movie trailer website. The main purpose is to build a backend server using Python.