https://github.com/alafty/acml-project
https://github.com/alafty/acml-project
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/alafty/acml-project
- Owner: alafty
- Created: 2022-10-30T19:15:52.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-01-21T10:35:59.000Z (over 3 years ago)
- Last Synced: 2025-01-21T07:11:29.158Z (over 1 year ago)
- Language: TypeScript
- Size: 151 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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.*|\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.