Skip to content

A capstone web application helps students learn to code. Students can learn and submit their solutions and view solutions. They can also send posts, interacts, and view blogs. Utilized MVC design pattern, with MySQL as the database, connecting with Laravel model, which then connects to the controller to integrate and render Blade content to users.

Notifications You must be signed in to change notification settings

ricsign/codinterest-resurrect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Codinterest

A capstone web application that inspires students to code. Students can learn algorithms and submit solutions. Integrated blog, auth, and comment features with CRUD using RESTful techniques. Incorporated C++ for solutions.

Project Gallery

Comments

Name: Richard Shuai

Date Start: September 8th,

Date Completed: November 23rd

Project: Capstone Coding Project (Codinterest)

Note:
To run laravel, you will need to install XAMPP(recommended)/Apache+MySQL and package manager Composer

Files Information (Important)

  • All SQL files are stored in \App\SQL directory
  • All controllers are stored in \App\Http\Controllers file
  • All models are stored in \App\Models directory
  • All views are stored in \Resources\views directory
  • All external JS, CSS, HTML, images, articles, problems are stored in \Public directory
  • All configurations are stored in \Config directory
  • All middlewares are stored in \App\Http\Middlewares directory

Design Pattern

MVC Model

Model

The central component of the pattern. It is the application's dynamic data structure, independent of the user interface. It directly manages the data, logic and rules of the application.

View

Any representation of information such as a chart, diagram or table. Multiple views of the same information are possible, such as a bar chart for management and a tabular view for accountants.

Controller

Accepts input and converts it to commands for the model or view.

Structure

The App Directory

The app directory contains the core code of the application, such as Controllers and Models.

The Bootstrap Directory

The bootstrap directory contains the app.php file which bootstraps the framework. This directory also houses a cache directory which contains framework generated files for performance optimization such as the route and services cache files.

The Config Directory

The config directory, as the name implies, contains all of the application's configuration files.

The Database Directory

The database directory contains the database migrations, model factories, and seeds.

The Public Directory

The public directory contains the index.php file, which is the entry point for all requests entering the application and configures autoloading. This directory also houses the assets such as images, JavaScript, and CSS.

The Resources Directory

The resources directory contains your views as well as the raw, un-compiled assets such as LESS, SASS, or JavaScript. This directory also houses all of your language files.

The Routes Directory

The routes directory contains all of the route definitions for the application. By default, several route files are included with Laravel: web.php, api.php, console.php and channels.php.

The web.php file contains routes that the RouteServiceProvider places in the web middleware group, which provides session state, CSRF protection, and cookie encryption.

The Storage Directory

The storage directory contains all compiled Blade templates, file based sessions, file caches, and other files generated by the framework. This directory is segregated into app, framework, and logs directories.

The Tests Directory

The tests directory contains the automated tests.

The Vendor Directory

The vendor directory contains all Composer dependencies.

Languages

Database

MySQL

Back End

A pure PHP framework Laravel.

Front End

Blade View, HTML 5, CSS 3, JavaScript, Jquery (JS lib), Bootstrap (CSS lib), Layui (CSS lib), Markdown.

Solution

C++

Developing Process

Plan a module

Have a sense of where I am going to develop a module, how to set up the database, how to configure the model.

Start from static front-end (V)

I'll first develop the front-end, this is my least favorite part of developing. I'm not much a design person, so it takes a lot of time to choose a font, color, background image and etc.

Proceed to database & model (M)

Then, I'll create a prototype database with the requirements, and then I'll set up the model.

Proceed to controller (C)

Controllers are where I implement logics, and connect views and models. It is essential for a module.

Back to view (V)

Replace all static data to dynamic data from controller.

Review & Integration

Then, I'll go back and forth between controllers and views, make sure it's functioning as expected. In the end, I'll integrate the module into the project.

Problems Process

Find/Create a cool problem

Find a problem online(usually leetcode and cemc) or create my own problems that I think it encompasses some important ideas.

Write description

Write down problem description

Write solution

Then, I'll figure a solution, and test it over and over again, making sure it's correct.

Create testcases

Yes, you're right, I have to type all testcases into my program and then run my program to get the answers. That is why a correct solution is essential

Convert it to markdown

Then, I'll go to a markdown editor(Stackedit) and reformat it.

Export it as HTML

After some refurbishing, I will export the md to html file.

Upload to database

Making sure everything is working properly, then, I'll upload my problem to the database.

About

A capstone web application helps students learn to code. Students can learn and submit their solutions and view solutions. They can also send posts, interacts, and view blogs. Utilized MVC design pattern, with MySQL as the database, connecting with Laravel model, which then connects to the controller to integrate and render Blade content to users.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published