Giter Site home page Giter Site logo

aid's Introduction

Project is unmaintained (archived)

Petition for archival is a process in which a projects state is altered to the "archival" state. In the "archival" state no organization member shall accept any pull request or address any issues related to the repository. A project can be set to the archival state after a period of six months with no pull requests you must however have two organization members or a club officer petition for this. the project can be restored to an active state by an approved appeal to the developers guild president.

AID: Assist ImproveD

"AID: Assist ImproveD" (or just AID) is an ambitious attempt at improving the functionality of ASSIST. From its site, "ASSIST is an online student-transfer information system that shows how course credits earned at one public California college or university can be applied when transferred to another. ASSIST is the official repository of articulation for California’s public colleges and universities and provides the most accurate and up-to-date information about student transfer in California." Note that AID is not affiliated with ASSIST in any way.

While AID started out as a project with goals only to make a website with a prettier/easier-to-use interface (as opposed to ASSIST's current interface), plans have since been proposed to add more useful functionality that ASSIST currently does not provide. The ultimate goal of this project is to provide a better experience for students, counselors, and anyone who uses ASSIST.

One of the biggest obstacles to this project was (and will continue to be) the collection of ASSIST's data for the project's own use. Unfortunately, ASSIST does not provide an API to their data and, on top of that, individual articulations are not always uniform in structure.

This project's answer to that is AssistScrape, a separate project being used as a component to fill AID's database.

With goals to bring a similar experience to the mobile app platform, AndroidAssist is a project also being developed alongside AID. Where AID is a web app that targets PC users, AndroidAssist aims to bring the same functionality to Android mobile devices.

For Contributors

AID was designed with a basic MVC pattern on top of the Express framework. The project uses Sequelize for the models, Express' default view functionality, and JavaScript classes that act as basic controllers.

Models

In a little more depth, the database this project uses is MySQL and Sequelize provides a high-level ORM to interact with that database. If you're looking for a quick peek at the DB schema, take a look at db/schema.sql, which reflects the original schema design before Sequelize was considered. Models and migrations should be designed using Sequelize's syntax; an easier way to get going with this would be to install sequelize-cli for commands that give access to automatic generation of model skeletons. Migrations can also be generated using sequelize-cli and, in fact, are generated automatically when generating a new model. Consult the Sequelize API for more help on designing models and migrations.

Views

Again, AID uses Express' default view functionality. Call/render views in their respectful controllers (and NOT in a routes file). This separates the logic from the middleware that handles requests.

Controllers

As for controllers, if one is being designed and uses a specific model, be sure to name the file of that controller the plural of its model's filename (i.e. models/user.js -> controllers/users.js). As of the time of this writing, controllers are currently designed only as basic JavaScript classes with the intention of having RESTful methods. This may change in the future to something that still incorporates REST practices, but is a little more refined.

Routes

For each RESTful controller, add a route file that matches its controller's filename in the routes directory and specify which method of the controller should be called for each route. The point of keeping the handling of routes separate from the controllers is, again, to separate the controller's logic from the router code to handle requests. Separation results in a much lower possibility of others witnessing twisted, evil, destructive, spaghetti code mashed together or in, put briefly, cleaner code.

Be sure to add top-level routing information in app.js i.e.

var users = require('./routes/users');
app.use('/user', users);

License

This project is licensed under the MIT License. See LICENSE.txt for more details.

aid's People

Contributors

chalkedgoose avatar wolfgangcstrack avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

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.