Milestone 7 Architecture
We propose fault tolerant, extensible, and modular system that scales to the level of intended usage. Our main goal is to design and create the core infrastructure to support basic interactions between workers and requestors. More specifically, we aim to have a design that can automatically adapt to the power and trust structures that a given collective of requestors and/or workers define.
CrowdResearch Work Dynamics
The CrowdResearch teams will collaborate to collectively produce the core Architecture. We have identified list of tasks needed to carry out the design of the architecture.
Teams will sign up for the tasks to execute them. Sign up for tasks you want to, want to learn, have experience in etc.
Each team needs to sign up for 1-3 tasks.
After teams have signed up, the teams working under a particular task need to communicate and discuss a work plan. We recommend for each task, having a team lead the other teams.
For each task, the teams will need to collectively provide:
basic design of what you will implement. What technologies you will use. Have a setup ready to do all the work. If possible have some preliminary implementation. Each group (teams working for a certain task) will also have a list of other groups their part will communicate with. It is important to have that list and start to talk to the other teams to say how your part will communicate with what the other groups are doing.
How will it work?
- Nginx is used as a reverse-proxy and serve the static files
- Gunicorn will handle the WSGI applications, in our case the Django Apps.
- The Django app is a great way to modularization. After completing the main web application we will work on rest APU with OAUTH2 autheentication. This app will be used for mobile and desktop clients. Other applications can be derived as project progresses.
The Django apps is a great way to do modularization, we will start with the main web application, and later we will work on another application which will be the rest API with OAUTH2 authentication, this app will be used for mobile clients and desktop clients. Other applications will follow depending on the need.