Skip to content

Latest commit

 

History

History
188 lines (139 loc) · 8.55 KB

README.md

File metadata and controls

188 lines (139 loc) · 8.55 KB

The Learning Tree: Online Learning Platform

Disclaimer

This Project is done for eductational purpouses only. The entirity of the background and motivation regarding this project is purely hypothetical. This is not a real product.

Background

The learning tree is the fruit of our team's efforts for the past couple of months. Of course the essence of the product can not be captured into a few words.Nevertheless, the aim of our project is to provide the earth with a class of highly educated and well informed humans, whom in turn can help turn this floating rock into a better place for all of us.

Product Description

At it's current state, our product offers our clientele a broad spectrum of functionalities. First we divide our target users into 3 categories.

  • Various field experts looking to spread their knowledge
  • Average joes looking for a chance to improve their lives
  • Corporates looking to invest in their class of less experienced employees

For every grouping we have a set of lucrative offerings to meet their needs.

Experts

In a world where one's future plans are dwarfed by the inevitable repercussions of economical crises. We offer a very attractive solution. Let us help you help the world. Through our platform, an expert can offer his knowledge to the public. Any verified knowledgable personell have the chance to offer their courses on our platform. They are also allowed to profit from selling said courses.With our payment gateway, earning from your knowledge was never easier!

Human Beings

If there is something commmon between humans is that we all lack knowledge in all but few aspects of life. Very early on we start a journey of trying to learn about everything. Our organization, believs in the important of the perpetuity of that process. That is why we are pleased to offer a learning platform, for everyone, everywhere, everytime. Learn about all of your intersts at any time, with our up coming mobile application, you can master quantum mechanics from your toilet stall. In addition, with or recurrent year round discounts and financial aid progrmas. Leanring will not break your bank. In addition, if you are not intrested in a course you purchased, you can always cancel your purchase and ask for a full reimbursement. Terms and Conditions Apply.

Corprates

Nowadays there is a copious amounts of frameworks, technologies, specifc purpouse applications for everyone in a field to master out of the box. Chances are your next perfectly capable hire will not have the desired experienced in the niche system your company is using. To tackle this issue, we offer corprates high value programs. A company can use our platform to ensure that all their employees have proper knowledge required for their jobs. With our comprehnsive quizing system, you can rest assured that your employees are going to master the subject. It does not matter the size of your company or organization. Our flexible package systems will make sure you are getting the highest value for you resources.

Build Status

The project is currently in it's alpha from. Due to the time constraints. The project was planned to reach a minimal value product just to show case the potentail of final result. Naturally, there is yet a lot of polishinn to be done. However at this stage, all the basic functionalities that would make the website operative and layout an infrastructure for furhter improvement is done. Some functionalities are however partially complete.

Technologies used

The project is developed using MERN Stack Development framework. Due to the fairly larger scale of functionlaity for the project. We were in need of a developement framework that enables us to develop moudles in the backend,frontend and the database, without having to face compatability hassle. We also opted to use typescript instead of javascript since it is more strongly typed which would yeild in a safer code and less time fixing type casting bugs. As for the version control client, Github was our choice as it is very widestream so there would be a very large support base.

Code Style

This section is more about the "architecture" than the code style. For the frontend, the app is following the MVVM architecture, but not fully. In typical MVVM, there should be the Model, the View and the ViewModel. In our case, there was no need for the Model part as the data wasn't large enough that we'd need to cache it in a repository somewhere. The rest of the code was divided into the "Pages" - that resembe the View - and the "Services" - that resemble the ViewModel. The backend, however, was more suited for the use of routes and controllers. They can be similar to the View and ViewModel, but they are a bit more closely coupled. The backend and frontend architectures work hand-in-hand, but they have only 1 way to communicate. The the services from the frontend interact with the controllers from the backend.

Installation

In order to install and run our system first install node.js

Bash install

curl "https://nodejs.org/dist/latest/node-${VERSION:-$(wget 
-qO- https://nodejs.org/dist/latest/ | sed -nE 's|.*>node-(.*)\
.pkg</a>.*|\1|p')}.pkg" > "$HOME/Downloads/node-latest.pkg" && 
sudo installer -store -pkg "$HOME/Downloads/node-latest.pkg" -target "/"

Clone the Repository

git clone git@github.com:alafty/ACML-Project.git

Install dependencies

npm install 

Run the system

Inside the home dierctory for the project run

npm run dev

This command runs the Server and the Front end concurrently. By default, the server runs on port 8000 and the client runs on port 3000. You can change the ports freely by creating a local .env file.

To access the website go to

htttps://localhost|${Local Network IP}:${Client Port Number} 

You can also communicate with the server without the front end on port 8000.For testing purpouses, our developement team used postmam to manage server calls.

Finally, you just need to create and connect your database.

https://www.mongodb.com/basics/create-database

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

Fork the Project

Create your Feature Branch (git checkout -b feature/AmazingFeature)

Commit your Changes (git commit -m 'Add some AmazingFeature')

Push to the Branch (git push origin feature/AmazingFeature)

Open a Pull Request

Credits

After months of hardwork, we must not forget credit where it is due. First to Eng. Mohame Kapiel who was our tutor Throughout this journey. The project would cease to exist. Secondly we would to show our gratitude to all the helpful resources we refered to, to make this project happen. We will list a few of the main resources in hope other aspiring programmers can find it helpful as well.

https://www.mongodb.com/languages/mern-stack-tutorial

https://www.youtube.com/watch?v=7CqJlxBYj-M

https://www.youtube.com/watch?v=-0exw-9YJBo

https://medium.com/codingthesmartway-com-blog/the-mern-stack-tutorial-building-a-react-crud-application-from-start-to-finish-part-2-637f337e5d61

and a lot of resources of course that would be too hard to mention.

License

Distributed under the MIT License.

MIT License

Copyright (c) 2021 Othneil Drew

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.