Skip to content

Latest commit

 

History

History
63 lines (54 loc) · 2.89 KB

README.md

File metadata and controls

63 lines (54 loc) · 2.89 KB

Ads Search

Description

This project provides a website which user can search for ads matching with the keywords they input. We use fake data, generated by some code and also user-created ads. It support for basic CRUD operation but also, it requires some Machine Learning algorithms to match user attributes and ads attribute. Scheduled jobs will be run to fake some data and run algorithms to rerank current ads pool. It will also supports for business to register ads with a calculated price.

Tech Stack

  • Database: MongoDB (Cassandra as backup option)
  • Server-Side:
    • Programming language: Java 8 (We will use Java 8 new features: Stream and Lambda Expression)
    • Web server: Tomcat 8.0
    • Framework: Spring(Core, IOC), Spring MVC, Spring Data (Spring Security as pottential option)
    • Server-side Template Engine: Thymeleaf 2 (Map update to Thymeleaf 3 depending on their progress)
    • Build Tool: Maven
    • Scheduling Job Solution: Quartz
    • Main Dependencies: Lucene
  • Front-end:
    • Javascript Framework/Lib: React Js, Redux
    • CSS Framework: Bootstrap
    • Dependency Management: npm

Team Member:

Scheduling

  • Preparation Weeks(Jul 18 - Jul 31)
    • Integrate Spring framework and finish configuration
    • Build boilerplate for ReactJs and Redux
    • Use Spring Data to connect to local MongoDB
    • First team meeting
    • Determine main funtionatilies of the whole project and architecture
    • All team members be able to access the initial page (done local environment configuration)
    • Determine the basic models of core objects
    • Distribute jobs for next week to team members
  • Coding Week(Aug 1 - Aug 22)
    • Authentication with Spring Security, React Route
    • Fake Ads generator
    • Search page mockup
    • Search page implementation
    • Dao, Service methods and tests
    • Invert Index table
    • Keywords matching part
    • luncene integration
    • update ranking
    • Redis Integration
  • Deploying Week (Aug 22 - Aug 29)
    • Deploy on PaaS or IaaSj, deployed on AWS

Future Feature

  • Functionailities
    • Implement User Authentication, aka, register, login, logout and remember-me.
    • Add real actions, for example, the user's click on a single ad will trigger update for this ad's relative scores
    • Add register ad page
  • Architecture
    • Figure out a cheap way to emulate a distributed system environment
    • Use Cassandra instead of MongoDB